Отслеживать, откуда приходят пользователи в PHP?
Можно ли узнать, откуда пришли пользователи? Например, я даю клиенту баннер и ссылку. Клиент может разместить баннер / ссылку на любой веб-сайт, скажем, на сайт www.domain.com.
Когда пользователь нажимает на баннер, можно ли узнать, откуда он (www.domain.com)?
5 ответов
Посмотрите на переменную HTTP_REFERER. Он скажет вам, на каком сайте был пользователь, прежде чем он зашел на ваш сайт.
Да. Вы даете клиенту уникальный URL, как www.yourdomain.com/in/e10c89ee4fec1a0983179c8231e30a45
, Затем отследите эти URL и обращения в базе данных.
Настоящей проблемой является отслеживание уникальных посетителей.
В некоторых случаях $_SERVER["HTTP_REFERER"] будет работать только тогда, когда php (php.ini) настроен с параметром register_globals bool, который включен.
Глобальные регистры могут разрешить эксплуатацию в слабо закодированных php-приложениях. Обычно в приложениях, которые позволяют пользователям размещать данные.
В прошлом я использовал следующий метод для проверки ссылок в приложениях, где я управляю вводом оператора.
session_start();
if(!isset($_SESSION['url_referer']))
{
$_SESSION['url_referer'] = $_SERVER['HTTP_REFERER'];
}
Без хеширования строк в переменных сеанса я не знаю более эффективной практики. Кто-нибудь знает лучшие практики?
С наилучшими пожеланиями,
штифтик
Увидеть
$_SERVER["HTTP_REFERER"]
Хотя этому не всегда можно доверять, так как он установлен клиентом, но вам может быть все равно в вашем случае.
Единственный шанс - использовать уникальный идентификатор (как указано в gnud). Таким образом, вы можете отслеживать входящие ссылки. Реферер может быть изменен / удален из браузеров или прокси (многие компании делают это).
Использование IP для отслеживания уникальных посетителей - плохая идея. AOL по-прежнему объединяет IP-адреса, и вы можете использовать разные IP-адреса каждые несколько минут, а с помощью прокси-серверов подсчет будет не очень точным.
Я бы сказал, пойти с уникальным идентификатором.