Как получить ссылочный сайт, с которого пользователь перешел в arive на моем сайте с помощью PHP?

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

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

$_SERVER['HTTP_REFERER'] 

получить ссылку на сайт, но прочитать это

'HTTP_REFERER'

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

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

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

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

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

Если вы ищете внешние рефералы, $_SERVER['HTTP_REFERRER'] – ваш единственный курс действий.

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

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