Как мне получить ссылающийся сайт, с которого пришел пользователь, чтобы зайти на мой сайт с помощью PHP? - PullRequest
3 голосов
/ 22 августа 2011

Я пытаюсь создать возможность размещения промо-кодов на сайте, над которым я работаю.Часть этой функции требует, чтобы я получил ссылающийся сайт, с которого пришел пользователь, и дал ему соответствующий промо-код.

Я думал об использовании

$_SERVER['HTTP_REFERER']

для получения ссылающегося сайта,читая это

'HTTP_REFERER'

Адрес страницы (если есть), которая направила пользовательский агент на текущую страницу.Это устанавливается пользовательским агентом.Не все пользовательские агенты будут устанавливать это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию.Короче говоря, этому нельзя доверять.

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

Ответы [ 3 ]

1 голос
/ 22 августа 2011

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

Если вы ищете внешних рефералов, $_SERVER['HTTP_REFERRER'] - ваш единственный способ действий.

1 голос
/ 22 августа 2011

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

HTTP_REFERER относительно легко подделать;если сайт, над которым вы работаете, достаточно заметен или промо-коды достаточно ценны, люди могут «украсть» промо-коды, подделав реферала (если вы полагаетесь на HTTP_REFERER).

1 голос
/ 22 августа 2011

Если вы не можете контролировать страницу, с которой идет пользователь, я боюсь, что HTTP_REFERER - единственный и, следовательно, лучший подход для поиска ссылающейся страницы.

Нет более надежных.Вы можете использовать код ссылки в строке GET, но им можно манипулировать или даже непреднамеренно копировать так же легко.

...