Счетчик посещений с помощью AJAX - как обрабатывать несколько посещений одного и того же пользователя?

Я создал простой счетчик посещений, который отправляет запросы ajax, чтобы определить, как долго посетитель просматривает страницу.

В JS я просто нажимаю PHP-файл каждые несколько секунд:

var ajaxreq = new XMLHttpRequest();
ajaxreq.open("GET", "visitlogger.php", true); 
ajaxreq.send();

Файл PHP (visitlogger.php) хранит данные в базе данных MySQL. - хранит "метку времени первого попадания" - хранит HTTP_REFERER, пользовательский агент, IP и т. д. - обновляет "метку времени последнего попадания", если существует идентификатор сеанса (чтобы проверить, как долго пользователь открывал страницу)

Теперь мне нужны файлы cookie или что-то еще, чтобы группировать посещения уникальных посетителей.

Как это сделать?

1 ответ

Решение

Я хотел бы сохранить два куки-файла, первый из которых будет иметь небольшой срок годности, а другой, скажем, 4-6 месяцев, если второй куки-файл установлен, вы знаете, что он не является уникальным посетителем, но все же есть следующие недостатки:

1) если куки отключены?

2) если куки очищены?

Изменить код:

  if (!isset($_COOKIE["visit_id"])) { //short cookie

    //log in db

    setcookie("visit_id", session_id(), time()+60*60*1, "/"); //set cookie for a day 

  } 


  if (!isset($_COOKIE["visit_long"])) { //long cookie

    //log in db


    setcookie("visit_long", session_id(), time()+60*60*24*30*6, "/"); //set cookie long for 6 months

  } else {

    if (!isset($_COOKIE["visit_id"])) {

    //not a unique visitor


    setcookie("visit_id", session_id(), time()+60*60*1, "/"); //set cookie for one day

   }

 }
Другие вопросы по тегам