У меня есть скрипт отслеживания, который я использую для сохранения аналитических данных в базе данных нашей компании. У нас довольно много веб-сайтов (около 2000 доменов) и кампаний PPC, и сценарий, который я использую, прекрасно работает.
Я знаю, что $_SERVER['HTTP_REFERER']
не является на 100% надежным и может быть либо пустым, либо подделанным, что угодно, это незначительное меньшинство из отведений, которые мы получаем (я учитываю это в своем сценарии отслеживания).
Проблема в том, что, хотя мой $_SERVER['HTTP_REFERER']
var всегда возвращается пустым, если я отображаю его на соответствующей странице, он передается в скрипт отслеживания (через $_SESSION
var) в качестве URL текущей страницы. Это как если бы (обратите внимание на «как будто», я знаю, что это не так) PHP заменяет $_SERVER['REQUEST_URI']
на $_SERVER['HTTP_REFERER']
.
Это с целевой страницы:
$_SESSION['keywords'] = $_SERVER['HTTP_REFERER'];
require_once 'tracking.php';
$raw_query = $_SESSION['keywords'];
$key_browser = getKeywords($raw_query);
$keywords = $key_browser['keywords'];
$referer = $key_browser['referer'];
$user_agent = getBrowserOs($_SERVER['HTTP_USER_AGENT']);
$br = $user_agent['browser'];
$os = $user_agent['os'];
Скрипт отслеживания несущественен, потому что переменные, которые я передаю, не изменяются.