Заголовок HTTP_REFERER
должен быть отправлен браузером клиента.Вы не можете полагаться на то, что оно будет отправлено.
Сценарии, когда он не отправляется, включают:
- Пользователь вводит адрес вручную
- Пользователь открывает ссылку в одном из больших электронных писемклиенты, которые делают большие шаги, чтобы скрыть REFERER
- Браузер пользователя настроен на блокировку заголовка реферера (редко)
- Пользователь переключает протоколы (т.е. ссылкуна http-сайте, указывающем на https, или наоборот)
В этих случаях вы ничего не можете сделать.
Однако, если вы контролируете сайт связывания, вы может добавить идентификатор ссылки в параметре GET к ссылке:
http://example.com/?from=mysite
затем вы можете проанализировать параметр from
в своем скрипте.
Преобразование строки ссылающейсядля IP обычно не очень хорошая идея, так как на многих IP-адресах размещаются десятки или сотни сайтов.Различие сайта , с которого пришел пользователь, будет потеряно таким образом.