Столкнулся совсем недавно с одной непонятной трудностью, достаточно просто решаемой на первый взгляд: определить источник перехода на страницу (Refferer).
Казалось бы все просто. Значение должно быть в переменной $_SERVER[‘HTTP_REFFERER’], но на удивление там оказалось пусто.
Я понимаю, браузер можно настроить, чтобы он не отдавал REFFERER, но я этого не делал. Более того, на других сайтах и даже под CMS 1С Битрикс это корректно работает.
Оказалось, что иногда при каких-то настройках переадресации на index.php и еще много чего по тексту, в чем разбираться в принципе не нужно, $_SERVER[‘HTTP_REFFERER’] затирается, теряется, становится пустым.
Жесть. Но оказалось есть решение, как получить REFFERER, если в переменной серверной пусто — прямое чтение заголовков.
foreach (getallheaders() as $name => $value) {
if ($name == 'Referer') {
$referer = $value;
}
}Вот так-то. Век живи, век учись — весьма актуально. Особенно для многих реферальных площадок, где REFFERER — это деньги!
Если эта информация оказалась вам полезной и интересной, то можно поблагодарить автора любой суммой либо по номеру телефона +79807480224 (Сбер, Тинькофф)
Еще больше интересной и полезной информации о SEO, сайтостроении, интернет-маркетинге читайте на моем канале @freelancervit.