PHP: уникальные посещения / попадания в определенные предметы с использованием куки / ip - PullRequest
1 голос
/ 31 июля 2009

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

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

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

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

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

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

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

Спасибо!

1 Ответ

2 голосов
/ 31 июля 2009

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

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

...