Intereting Posts
Данные сеанса, потерянные только в Chrome scandir () сортировать по дате изменения 413 Слишком сложная задача запроса – проблема с отправкой файлов GET Request работает с библиотекой запросов python, но не работает с curl Удалите весь текст, который находится под "(" и ")" Подтверждение пароля CakePHP Убивание глобальной переменной сеанса в качестве кнопки выхода Как вставить данные в столбцы из PHP в MariaDB? PHP: Как нарисовать изображение над другим изображением? Остановить перенаправление после добавления WooCommerce в корзину Как автоматически прокручивать нижнюю часть окна текстового файла? Как изменить каталог проектов Netbeans 7 по умолчанию? Ошибка ffmpeg MAMP "dyld: Библиотека не загружена" Включить все функции в php-файл, который мне нужен, или только те функции, которые мне нужны? Не удается отбросить одно значение (id) из db в массиве после нажатия кнопки отправки

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

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

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

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

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

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

Я также читал, что лучше не использовать GLOBAL-переменные слишком много …

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

Благодаря!

Если вы предпочитаете использовать 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, сеансы будут длиться только определенное количество времени. Таким образом, он запишет визит через несколько дней.

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