Вернуться на предыдущую страницу с заголовком («Местоположение:»);в PHP - PullRequest
111 голосов
/ 12 марта 2011

Название этого вопроса как бы объясняет мой вопрос.Как перенаправить посетителя страницы PHP обратно на предыдущую страницу с header( "Location: URL of previous page" );

Ответы [ 6 ]

224 голосов
/ 12 марта 2011

попробовать:

header('Location: ' . $_SERVER['HTTP_REFERER']);

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

В идеале вы захотите либо:

  • Добавить адрес возврата к запросу в качестве переменной запроса (например,? Back = / list)
  • Определите страницу возврата в своем коде (т. Е. Все успешные отправки формы перенаправляют на страницу со списком)
  • Предоставьте пользователю возможность, куда он хочет пойти дальше (например, Сохранить и продолжить редактирование или просто Сохранить)
21 голосов
/ 18 января 2012

Это так просто, просто используйте это

header("location:javascript://history.go(-1)");

Это прекрасно работает для меня

13 голосов
/ 12 марта 2011

Вы должны каким-то образом сохранить это местоположение.

Скажите, что это форма POST, просто поместите текущее местоположение в скрытое поле и затем используйте его в header() Местоположение.

9 голосов
/ 10 августа 2014

Просто небольшое дополнение: Я считаю, что это обычная и известная вещь, чтобы добавить выход; после функции заголовка, если мы не хотим, чтобы остальная часть кода загружалась или выполнялась ...

header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
2 голосов
/ 27 мая 2015

Просто попробуйте это в Javascript:

 $previous = "javascript:history.go(-1)";

Или вы можете попробовать это на PHP:

if(isset($_SERVER['HTTP_REFERER'])) {
    $previous = $_SERVER['HTTP_REFERER'];
}
1 голос
/ 06 февраля 2012

Сохранять предыдущий URL в переменной сеанса плохо, потому что пользователь может щелкнуть правой кнопкой мыши по нескольким страницам, а затем вернуться и сохранить.

, если вы не сохраните предыдущий URL-адрес в переменной сеанса в скрытое поле в форме и после заголовка сохранения («Местоположение: сохранить URL-адрес вызывающей страницы»);

...