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

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

пытаться:

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

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

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

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

Его так просто использовать

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

Его работа отлично для меня

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

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

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

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

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

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

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

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

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

 if(isset($_SERVER['HTTP_REFERER'])) { $previous = $_SERVER['HTTP_REFERER']; }