Как наиболее эффективно регистрировать действия пользователя и количество просмотров страниц? - PullRequest
4 голосов
/ 02 ноября 2011

Я создал сайт, на котором пользователи смогут добавлять записи, связывать строки в разных таблицах и так далее. Мне нужно отследить, какие действия пользователи делают для таблицы результатов.

Мне также нужно отслеживать просмотры страниц.

Я пытаюсь выяснить, как наиболее эффективно отслеживать / регистрировать это.

Лучше ли:

  • создать новую БД и добавить сюда записи?
  • Добавить записи в той же базе данных, что и веб-сайт?
  • Использовать javascript для отправки параметров по URL на сервер журналов?

Есть еще какие-нибудь хорошие методы?

Я не знаю, сколько пользователей у меня будет на моем веб-сайте, когда я запущу это, но, надеюсь, у меня будет немного трафика.

Ответы [ 4 ]

1 голос
/ 02 ноября 2011

Вы можете сделать таблицу БД со строками:

  • Дата и время
  • IP-адрес
  • Текущий URL
  • URL реферера
  • Сериализованный $ _GET
  • Сериализованный $ _POST
  • Сериализованный $ _COOKIE

Это очень полезно, если вы хотите отслеживать свой трафик.

псевдокод:

if(!$bot) { 
   $visit = Array(
     'date' => date("Y-m-d H:i:s"),
     'ip'   => $_SERVER['REMOTE_ADDR'],
     etc ...
   );
   $sql = "INSERT INTO visits (`".join("`,`",array_keys($visit)."`) VALUES ('".join("','",array_values($visit)."')";
   ...
}

Используйте ту же БД, чтобы у вас было меньше подключений к серверу mysql.

Сделайте это в PHP-скрипте (после mysql_connect - неплохая идея), я считаю, что одна ВСТАВКА за посещение не является большой проблемой для вашей машины.

0 голосов
/ 07 апреля 2012

Рассматривали ли вы использование веб-хранилища HTML5: http://www.w3schools.com/html5/html5_webstorage.asp

Вы можете использовать объект sessionstorage javascripts (данные хранятся в парах ключ / значение), чтобы сохранить все действия страницы как свойства этого объекта, а затем POST thisЯ полагаю, что таким образом вы можете избежать ненужных http-запросов со всеми издержками, отправляя информацию об активности страницы в одном окончательном запросе. Вместе с действием выхода из системы в серверный сценарий, который, в свою очередь, поддерживает соответствующие записи базы данных.Вы должны повторно инициализировать объект при каждом входе пользователя в систему.

0 голосов
/ 02 ноября 2011

Я советую искать решение, которое будет асинхронным (чтобы минимизировать влияние на производительность для конечных пользователей) и интегрированным с общим решением для данных о посетителях (чтобы можно было объединять отчеты по различным показателям).Например, Google Analytics предлагает Отслеживание событий , чтобы вы могли добавлять к его стандартным показателям посетителей, просмотров страниц и т. Д. Произвольные данные о действиях пользователей, подобные тем, которые вы описываете.

0 голосов
/ 02 ноября 2011

Я бы не стал использовать Javascript, если вы хотите получить надежные результаты, так как пользователи могут отключить его или могут попытаться манипулировать им, чтобы каким-то образом обмануть.

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

...