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']; }поместите это в верхней части страницы, и вы всегда сможете получить доступ к первому рефереру, которым был направлен посетитель сайта.
использование куки в качестве репозитория ссылочной страницы намного лучше в большинстве случаев, так как куки будут держать реферер до закрытия браузера (и будут держать его, даже если вкладка браузера закрыта), поэтому в случае, если пользователь оставил страницу открытой, скажем, до выходных, и вернулся к ней через пару дней, ваша сессия, вероятно, истечет, но куки все равно будут там.
поместите этот код в начале страницы (перед любым выводом 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