Получение URL-адреса реферера в php (включая параметры)

Существуют ли какие-либо заголовки HTTP, которые я мог бы использовать для захвата всего URL-адреса реферера с помощью сценариев на стороне веб-сервера/сервера? Включая строку запроса и так далее?


person meder omuraliev    schedule 26.07.2009    source источник


Ответы (2)


Вы должны получить его из переменной $_SERVER['HTTP_REFERER'].

person Tyler Carter    schedule 26.07.2009
comment
Я знаю об этом, но есть ли еще заголовки http или какие-либо другие методы? Я считаю, что реферер может вручную изменить этот http-заголовок, поэтому я подумал, что использовался какой-то другой метод. - person meder omuraliev; 26.07.2009
comment
Я считаю, что реферер отправляется браузером. И в любом случае, если кто-то изменит его, он изменит его, и вы ничего не сможете с этим поделать. Несовершенный мир, к сожалению. - person Tyler Carter; 26.07.2009

Чтобы добавить к точке зрения Чачи, я не знаю, хотите ли вы захватить хеш-часть клиентской части URL-адреса реферера (иногда вы это делаете). т.е. если клиент пришел с "http://www.domain.com?x=3#y=5", $_SERVER['HTTP_REFERER'] будет содержать только "http://www.domain.com?x=3", и часть хэша не будет отправлена ​​на сервер.

Если вы хотите захватить эту хеш-часть (официально называемую фрагментом URL), вы можете сделать это только в том случае, если ссылающаяся страница является вашей СОБСТВЕННОЙ страницей, то есть если вы можете написать код на этой странице. Если это так, просто отправьте запрос AJAX в веб-службу статистики, которая захватывает рефереры, и отправьте весь URL-адрес вверх (у javascript есть доступ к этой части URL-адреса).

person Alex Weinstein    schedule 26.07.2009
comment
Добавлю, что я провел некоторое исследование, и есть утверждения, что некоторые браузеры отправляют хэш, но мое тестирование показывает, что ни один из современных браузеров (то есть IE 6+, Safari 2+, Firefox 2+, Opera 9+, Chrome) отправить хэш. - person eyelidlessness; 26.07.2009