PHP - $_SERVER['HTTP_REFERER'] - как сохранить один раз, а не снова при отправке формы
В PHP, как я могу хранить переменную "backurl"? (извлекается, как показано ниже внизу - когда необходимо применить следующие ограничения)
- Переменная "backurl" хранит последний просмотренный php-скрипт.
- При первом выполнении переменная "backurl" сохраняется и работает правильно
- Когда форма отправляется через $_GET или $_POST в этом скрипте, переменная будет обновляться по мере изменения предыдущего URL. (Я не хочу, чтобы это произошло)
т.е. ОТ -> ДО (фактический результат - желаемый результат)
page1.php -> page2.php (ссылка идет на page1.php - по назначению)
page2.php -> page2.php? test = yes (ссылка идет на page2.php - я хочу вернуться на page1.php)
Если у кого-то есть предложения, как это сделать, большое спасибо!
$backurl = $_SERVER['HTTP_REFERER'];
3 ответа
Вы могли бы использовать сеансы
<?php
session_start();
if(!isset($_SESSION['backurl'])){
$_SESSION['backurl'] = $_SERVER['HTTP_REFERER'];
}
?>
$_SESSION['backurl']; //contains the back url;
и если вам необходимо сбросить backurl:
unset($_SESSION['backurl']);
Установите backurl в session
и получать к нему доступ в любое время и в любом месте
Есть несколько способов сделать это. Можно обновить ваш backurl, только если страница скрипта отличается, используя сеанс.
например (не проверено):
session_start();
if( $_SEVER['SCRIPT_NAME'] != $_SESSION['lastpage'] ){
$_SESSION['backurl'] = $_SERVER['REQUEST_URI'];
}
Таким образом, вы будете обновлять backurl только при вызове другой php-страницы, оставляя его неизменным, когда переходите на одну и ту же страницу с другими параметрами (на основе вашего примера).
Адаптируйте код под свои нужды.