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