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