Я использую, $_SERVER['HTTP_REFERER'];
чтобы получить URL-адрес ссылки. Он работает, как ожидалось, пока пользователь не щелкнет другую страницу, а реферер не перейдет на последнюю страницу.
Как сохранить исходный URL-адрес ссылки?
Я использую, $_SERVER['HTTP_REFERER'];
чтобы получить URL-адрес ссылки. Он работает, как ожидалось, пока пользователь не щелкнет другую страницу, а реферер не перейдет на последнюю страницу.
Как сохранить исходный URL-адрес ссылки?
Ответы:
Сохраните его либо в файле cookie (если это приемлемо для вашей ситуации), либо в переменной сеанса.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
существует ли он , поскольку часто этого не происходит, что может вызвать ошибку «Неопределенный индекс».
Как предложил Джонатан, вы хотите сохранить его в файле cookie или в сеансе.
Более простой способ - использовать переменную сеанса.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Поместите это вверху страницы, и вы всегда сможете получить доступ к первому референту, по которому был направлен посетитель сайта.
Использование Cookie в качестве репозитория справочной страницы в большинстве случаев намного лучше, поскольку файлы cookie будут сохранять реферер до закрытия браузера (и будут сохранять его, даже если вкладка браузера закрыта), поэтому в случае, если пользователь оставил страницу открытой, скажем до выходных и вернувшись к нему через пару дней, ваша сессия, вероятно, истечет, но файлы cookie все еще будут там.
Поместите этот код в начало страницы (перед любым выводом html, поскольку файлы cookie будут правильно установлены только перед любым echo / print):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Тогда вы сможете получить к нему доступ позже:
$var = $_COOKIE['origin_ref'];
И помимо того, что @pcp предложил экранировать $ _SERVER ['HTTP_REFERER'], при использовании cookie вы также можете захотеть экранировать $ _COOKIE ['origin_ref'] при каждом запросе.
попробуй это
(isset ($_SERVER['HTTP_CLIENT_IP']) ?
$_SERVER['HTTP_CLIENT_IP'] :
(isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ?
$_SERVER['HTTP_X_FORWARDED_FOR'] :
$_SERVER['REMOTE_ADDR']
)
)
IP ADDRESS
но сообщение о REFERER
веб-странице, которая привела к той, о которой идет речь.