Счетчик посещений с помощью 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
}
}