Адрес предыдущей внешней ссылки

lara_

Новичок
Здравствуйте.
Пожалуйста, подскажите у кого есть идеи:
мне нужно определить Адрес предыдущей внешней ссылки,например, Google, Yandex, Vk и т.д.
Я реализовала это с помощью $_SERVER['HTTP_REFERER'].
Я знаю, что если вбить самому url своего сайта в браузер, то $_SERVER['HTTP_REFERER'] пуст.
Если же был переход на мой сайт, в $_SERVER['HTTP_REFERER'] - адрес ссылки, по которой перешли.
НО я наткнулась на такую проблему:
в ие, например, поисковик yahoo.com выдал мне ссылку на мой сайт. Ссылка открывается в новом окне и $_SERVER['HTTP_REFERER'] пуст.
Если сделать все тоже самое в Chrome, то $_SERVER['HTTP_REFERER']=''http://search.yahoo.com...".
Вопрос в том, как мне корректно определять Адрес предыдущей внешней ссылки во всех браузерах.
Знаю, что можно поставить аналитику и она соберет всю информацию по сайту. Но заказчик хочет свой функционал, кот собирал бы для него данные.
 

hell0w0rd

Продвинутый новичок
Скажите заказчику не страдать фигней, крупные сервисы используют гугл/яндекс метрику и не жалуются, а у вас какой-то особый случай.
Плюс на сколько я знаю о переходе из гугла можно узнать только из их аналитики. Точнее о конкретной поисковой фразе
 

WMix

герр M:)ller
Партнер клуба
lara_, при желании HTTP_REFERER будет таким каким его захочу, вне зависимости от браузера или поисковика!.. считай что это прямой заход!

Вопрос в том, как мне корректно определять Адрес предыдущей внешней ссылки во всех браузерах.
на 100% никак, твой способ правильный или пользуйтесь внешним сервисом
 

Вурдалак

Продвинутый новичок
Так Google запрос в fragment'е передаёт, даже если у твоего заказчика сайт на https, то в реферере будет просто https://google.com/. А если нет — то вообще нихера.
 

lara_

Новичок
Я пробывала таким способом, ничего не получилось.


Мне нужно узнать только доменное имя сайта, с которого был переход. По каким ключевым словам, время пребывания и т.д. - я этим не занимаюсь, пока что.
Просто у заказчика есть друг, у друга - сайт. И на этом сайте без проблем определяют внешнюю ссылку, по которой перешли на сайт.
Я не нашла другого способа, только через $_SERVER['HTTP_REFERER']. А этот способ с дефектом.
Может быть можно еще как-то определить???
 

keltanas

marty cats
А этот способ с дефектом
Это не способ с дефектом. Это некоторые браузеры с дефектом :)
Передавать реферальную ссылку через заголовок HTTP_REFERER должена клиентская программа. Если она этого не делает, значит сервер никак не узнает, откуда к нему зашли.

PHP скрипт как работает? Через апач, через nginx, через прокси какой-нибудь? Может что-то режет заголовок на пути к скрипту?
 

lara_

Новичок
PHP скрипт работает через апач.
Может что-то режет заголовок на пути к скрипту?
Дело в том, что такая ошибка только в ие, с остальными браузерами нормально.
и вот еще:
в ие, например, поисковик yahoo.com выдал мне ссылку на мой сайт. Ссылка открывается в новом окне и $_SERVER['HTTP_REFERER'] пуст.
НО если использовать поисковик yandex, ие тоже откроет ссылку на мой сайт в новом окне, но $_SERVER['HTTP_REFERER']="http://yandex...."
Т.е. иногда корректно работает, иногда нет...
 

Активист

Активист
Команда форума
Никак, кроме как $_SERVER['HTTP_REFERER'] узнать откуда пришел пользователь нельзя. Отвечает за это браузер пользователя.
 
Сверху