HTTP_REFERER пусто, нужна альтернатива - PullRequest
6 голосов
/ 07 июня 2011

У меня есть простая форма регистрации, которая должна отслеживать количество обращений одного конкретного внешнего реферера.Это простая задача с PHP:

$_SERVER['HTTP_REFERER']

, однако она пуста.После некоторого исследования я попытался использовать некоторый JavaScript:

document.referrer

Все еще пусто.: (

Мне действительно не нужно ничего сложного, но я пытаюсь НЕ использовать awstats.
Есть ли другой способ получить реферера (хаки приняты) ?? Или я застрял со статистикой ???

- спасибо

Ответы [ 2 ]

11 голосов
/ 07 июня 2011

Короче говоря: если пользователь не хочет этого, вы никогда не узнаете, откуда он. Однако более «надежным» решением может быть добавление реферала к ссылке с сайта происхождения на ваш. Что-то вроде

<a href="http://example.com/index.php?referrer=originId">Visit example.com</a>

Для этого требуется, чтобы внешние сайты не могли просто ссылаться на ваш сайт, но всегда должны добавлять свой личный идентификатор. Если это невозможно, мало что можно сделать.

Вполне возможно, что кто-то может изменить и этот идентификатор.

7 голосов
/ 07 июня 2011

Реферер возможно отправляется в заголовке HTTP-запроса.

Возможно, браузер даже не отправит его, или какой-то прокси, брандмауэр или пакет безопасности удалит егоили даже меняет его.Вы не можете на это полагаться.

Есть только одна вещь, которую вы можете сделать: если она пустая, учтите, что вы не знаете реферера.

...