Запись отчёта о посещении приложения

Готовые уроки IFrame + ВКонтакте API

Запись отчёта о посещении приложения

Сообщение ukhov » 14 янв 2011, 20:13

Данный код записывает отчёт о посещении пользователем вашего приложения в файл txt. А именно: дату, время и id зашедшего.
1) Создайте файл baza.txt в корневом каталоге
2) Создайте файл index.php и запишите в него код:
  1. <?php
  2. // вычисляем дату и время
  3. $date = date("d.m.y"); // вычисляем двту в формате "День, месяц, год"
  4. $dn = date("l");
  5. ?>
  6.  
  7. <?php
  8. $hourdiff = "0"; // hours difference between server time and local time
  9. $timeadjust = ($hourdiff * 60 * 60);
  10. $melbdate = date(" H:i",time() + $timeadjust);
  11. ?>
  12.  
  13. <?
  14. if(isset($_GET['viewer_id'])) {
  15. $id = $_GET['viewer_id'];
  16.  
  17.   $fp=fopen("baza.txt","a+"); //Открытие дескриптора файла пользователя на запись
  18.   if ($fp) {
  19.   flock($fp,2);
  20.   fwrite($fp,"Date: $date$melbdate | id: $id
  21. ");
  22.   flock($fp,3);
  23.   fclose($fp);
  24.   }
  25. }
  26. ?>

Теперь Вы можете открыть файл baza.txt и посмотреть кто зашёл)
Изображение

За это сообщение автора ukhov поблагодарили - 2:
ceed, Koval
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Запись отчёта о посещении приложения

Сообщение Deniska » 14 янв 2011, 21:33

Уже 90% используют MySQL. По-моему текстовые файлы уже не актуальны.

За это сообщение автора Deniska поблагодарил:
Mihailow_du
Аватара пользователя
Deniska

 
Сообщения: 654
Зарегистрирован: 30 окт 2009, 00:07
Благодарил (а): 15 раз.
Поблагодарили: 48 раз.

Re: Запись отчёта о посещении приложения

Сообщение Александр » 14 янв 2011, 22:04

ukhov
А какой смысл разделять код внутри такими вставками?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Запись отчёта о посещении приложения

Сообщение ukhov » 15 янв 2011, 15:31

Александр
мне так удобнее
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

Re: Запись отчёта о посещении приложения

Сообщение Noise Gate » 15 янв 2011, 16:40

Deniska писал(а):Уже 90% используют MySQL. По-моему текстовые файлы уже не актуальны.

Иногда хочется получить очень специфическую статистику, которую нельзя отследить при помощи базы (вернее можно, но база будет просто гигантской, что отразится на работе всего приложения). В таких случаях намного удобнее вести подробные логи, а потом обрабатывать их отдельно.
Noise Gate

 
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Запись отчёта о посещении приложения

Сообщение ceed » 15 янв 2011, 16:45

Спасибо, все работает отлично!
Не важно, чем ты занимаешься в жизни, важно, чтобы ты отдавал этому все свои силы.
ceed

 
Сообщения: 13
Зарегистрирован: 24 авг 2010, 09:38
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Запись отчёта о посещении приложения

Сообщение ukhov » 18 янв 2011, 16:27

а вообще можно намного красивее всё это записать. только не в txt, а в php:
Туда будут записываться все действия, которые происходили в приложении.
1) Создаём файл log.php с таким содержанием:
  1. <table style="width: 100%; border-collapse: collapse"><tbody><tr><td style="width: 125px; background-color: #4682b4; letter-spacing: 0px; word-spacing: 0px"><strong><font color="#ffffff">Дата, время</font></strong><strong><font color="#ffffff"><br></font></strong></td><td style="width: 125px; background-color: #4682b4; letter-spacing: 0px; word-spacing: 0px"><strong><font color="#ffffff">IP адрес</font></strong><strong><font color="#ffffff"><br></font></strong></td><td style="background-color: #4682b4; letter-spacing: 0px; word-spacing: 0px"><strong><font color="#ffffff">Действие</font></strong><br></td></tr>

2) Добавляем в index.php код:

3) Заменяем в index.php этот код:
  1. <?
  2. if(isset($_GET['viewer_id'])) {
  3. $id = $_GET['viewer_id'];
  4.  
  5.   $fp=fopen("baza.txt","a+"); //Открытие дескриптора файла пользователя на запись
  6.   if ($fp) {
  7.   flock($fp,2);
  8.   fwrite($fp,"Date: $date$melbdate | id: $id
  9. ");
  10.   flock($fp,3);
  11.   fclose($fp);
  12.   }
  13. }
  14. ?>

на этот:
  1. <?
  2. if(isset($_GET['viewer_id'])) {
  3. $id = $_GET['viewer_id'];
  4.  
  5.   $fp=fopen("log.php","a+"); //Открытие дескриптора файла пользователя на запись
  6.   if ($fp) {
  7.   flock($fp,2);
  8.   fwrite($fp,"<tr><td>$date$melbdate<br></td><td>$ip<br></td><td>Пользователь <b>$id</b> посетил <b>index.php</b> (главная страница)<br></td></tr>);
  9.  flock($fp,3);
  10.  fclose($fp);
  11.  }
  12. }
  13. ?>
  14.  
  15.  
  16.  

Теперь когда пользователь зайдёт на глайную страницу (index.php), в таблицу добавиться дата, время входа, ip и id пользователя.

Но если Вы хотите записывать туда не только заход в приложение пользователем, но и дальнейшие переходы по страницам, то к каждой ссылке на странице добавьте код, который передаст GET от Вконтакте другой странице:
  1. ?api_url=<?php
  2. echo ($_GET["api_url"]."");
  3. ?>&api_id=<?php
  4. echo ($_GET["api_id"]."");
  5. ?>&api_settings=<?php
  6. echo ($_GET["api_settings"]."");
  7. ?>&viewer_id=<?php
  8. echo ($_GET["viewer_id"]."");
  9. ?>&viewer_type=<?php
  10. echo ($_GET["viewer_type"]."");
  11. ?>&sid=<?php
  12. echo ($_GET["sid"]."");
  13. ?>&user_id=<?php
  14. echo ($_GET["user_id"]."");
  15. ?>&group_id=<?php
  16. echo ($_GET["group_id"]."");
  17. ?>&is_app_user=<?php
  18. echo ($_GET["is_app_user"]."");
  19. ?>&auth_key=<?php
  20. echo ($_GET["auth_key"]."");
  21. ?>

Повторяю, что это позволит отслеживать дальнейшие действия пользователя. Например, в index.php содержится ссылка на 2.php, т.е.:

Теперь к ней надо добавить код передачи GET на другую страницу. Получится:
  1. <a href="2.php?api_url=<?php
  2. echo ($_GET["api_url"]."");
  3. ?>&api_id=<?php
  4. echo ($_GET["api_id"]."");
  5. ?>&api_settings=<?php
  6. echo ($_GET["api_settings"]."");
  7. ?>&viewer_id=<?php
  8. echo ($_GET["viewer_id"]."");
  9. ?>&viewer_type=<?php
  10. echo ($_GET["viewer_type"]."");
  11. ?>&sid=<?php
  12. echo ($_GET["sid"]."");
  13. ?>&user_id=<?php
  14. echo ($_GET["user_id"]."");
  15. ?>&group_id=<?php
  16. echo ($_GET["group_id"]."");
  17. ?>&is_app_user=<?php
  18. echo ($_GET["is_app_user"]."");
  19. ?>&auth_key=<?php
  20. echo ($_GET["auth_key"]."");
  21. ?>">Перейти на 2.php</a>

И теперь в 2.php пишем код:
  1.  
  2. <?php
  3. // вычисляем дату и время
  4. $date = date("d.m.y"); // вычисляем двту в формате "День, месяц, год"
  5. $dn = date("l");
  6. ?>
  7.  
  8. <?php
  9. $hourdiff = "0"; // hours difference between server time and local time
  10. $timeadjust = ($hourdiff * 60 * 60);
  11. $melbdate = date(" H:i",time() + $timeadjust);
  12. ?>
  13.  
  14. <?
  15. $ip=$_SERVER['REMOTE_ADDR'] // Получаем IP пользователя
  16. ?>
  17.  
  18. <?
  19. if(isset($_GET['viewer_id'])) {
  20. $id = $_GET['viewer_id'];
  21.  
  22.   $fp=fopen("log.php","a+"); //Открытие дескриптора файла пользователя на запись
  23.   if ($fp) {
  24.   flock($fp,2);
  25.   fwrite($fp,"<tr><td>$date$melbdate<br></td><td>$ip<br></td><td>Пользователь <b>$id</b> посетил <b>2.php</b> (страница 2)<br></td></tr>);
  26.  flock($fp,3);
  27.  fclose($fp);
  28.  }
  29. }
  30. ?>
  31.  
  32.  
  33.  
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

Re: Запись отчёта о посещении приложения

Сообщение Pavlo0a » 22 янв 2011, 12:49

Вы сделал маленькую ошибку в коде.
Вот так правильно
  1. <?
  2. if(isset($_GET['viewer_id'])) {
  3. $id = $_GET['viewer_id'];
  4.  
  5.   $fp=fopen("log.php","a+"); //Открытие дескриптора файла пользователя на запись
  6.   if ($fp) {
  7.   flock($fp,2);
  8.   fwrite($fp,"<tr><td>$date$melbdate<br></td><td>$ip<br></td><td>Пользователь <b>$id</b> посетил <b>index.php</b> (главная страница)<br></td></tr>");
  9.  flock($fp,3);
  10.  fclose($fp);
  11.  }
  12. }
  13. ?>

Просто забыли закрыть скобки)
Изображение
Аватара пользователя
Pavlo0a

 
Сообщения: 26
Зарегистрирован: 08 авг 2010, 18:25
Откуда: Украина
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Запись отчёта о посещении приложения

Сообщение ukhov » 28 янв 2011, 18:54

ап :D
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Автор темы
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.

Re: Запись отчёта о посещении приложения

Сообщение Deniska » 28 янв 2011, 18:58

ukhov писал(а):ап :D


Зачем опять апаешь? Это же раздел уроки и тут ты задал не вопрос. Твой урок не убежит никуда, кому надо тот найдёт.
Аватара пользователя
Deniska

 
Сообщения: 654
Зарегистрирован: 30 окт 2009, 00:07
Благодарил (а): 15 раз.
Поблагодарили: 48 раз.

След.

Вернуться в Уроки IFrame ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron