Я використовую $_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.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Помістіть це вгорі сторінки, і ви завжди зможете отримати доступ до першого реферату, яким керував відвідувач сайту.
Використовувати Cookie як сховище довідкової сторінки в більшості випадків набагато краще, оскільки файли cookie зберігатимуть референс, поки браузер не закриється (і зберігатиме його, навіть якщо вкладка браузера закрита), так що, якщо користувач залишив сторінку відкритою, скажімо до вихідних, і повернувшись до нього через пару днів, ваш сеанс, ймовірно, закінчиться, але файли 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'] у кожному запиті.
спробуйте це
(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
веб-сторінку, що призвела до тієї, про яку йдеться.