PHP:Уникальные посещения / переходы к определенным элементам с использованием файлов cookie / ip

StackOverflow https://stackoverflow.com/questions/1213932

  •  06-07-2019
  •  | 
  •  

Вопрос

Я использую простую таблицу MySQL для подсчета дневных просмотров для определенных страниц / элементов на веб-сайте.Используя столбец "id" для идентификаторов страниц / элементов, "date" для дня посещений / обращений и столбец "hits" для количества обращений.

Каждый раз, когда кто-то посещает страницу, значение просмотров за эту конкретную дату обновляется до +1.

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

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

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

Я также читал, что лучше не использовать ГЛОБАЛЬНЫЕ переменные слишком часто...

Может кто-нибудь, пожалуйста, объяснить мне, как это лучше всего сделать и как это сделать??

Спасибо!

Это было полезно?

Решение

Если вы предпочитаете иметь дело с файлами cookie как переменными PHP, с чем вы, скорее всего, хорошо знакомы, я бы использовал сеанс.

session_start()
$page = 1; // Page ID
if(isset($_SESSION[$page]))
{
    // Do something if the person refreshed
}
else
{
     $_SESSION[$page] = time();
     // record hit.
}

Получите идентификатор страницы в переменной $page, и она сохранит его в сеансе.Сеанс похож на файл cookie, за исключением того, что он сохраняется на стороне сервера.

В принципе, если есть переменная с идентификатором этой страницы, она ничего не сделает, иначе она записывает попадание и устанавливает переменную.

Вы можете ознакомиться с этим руководством для получения дополнительной информации о сеансах: http://www.tizag.com/phpT/phpsessions.php

Как и файлы cookie, сеансы будут длиться только определенное количество времени.Таким образом, он запишет посещение через несколько дней.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top