Сделать оригинальный реферер URL-адрес с помощью PHP?



Я использую $_SERVER['HTTP_REFERER']; чтобы получить Url-адрес референта. Он работает так, как ожидалось, пока пользователь не нажмет другую страницу, и реферер изменится на последнюю страницу.



Как сохранить исходный URL-адрес ссылки?

567   4  

4 ответов:

храните его либо в файле cookie (если это приемлемо для вашей ситуации), либо в переменной сеанса.

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

Как предложил Джонатан, вы либо хотите сохранить его в файле cookie, либо в сеансе.

проще было бы использовать переменную сеанса.

session_start();
if(!isset($_SESSION['org_referer']))
{
    $_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}

поместите это в верхней части страницы, и вы всегда сможете получить доступ к первому рефереру, которым был направлен посетитель сайта.

хранить его в файле cookie, который длится только для текущего сеанса просмотра

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

поместите этот код в начале страницы (перед любым выводом html, так как файлы cookie будут правильно установлены только перед любым эхом / печатью):

if(!isset($_COOKIE['origin_ref']))
{
    setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}

затем вы можете получить доступ к нему позже:

$var = $_COOKIE['origin_ref'];

и в дополнение к тому, что @pcp предложил об экранировании $_SERVER['HTTP_REFERER'], при использовании cookie вы также можете захотеть экранировать $_COOKIE['origin_ref'] по каждому запросу.

Comments

    Ничего не найдено.