PHP - Передать переменные POST с заголовком()?

Я пытаюсь использовать функцию header() для создания перенаправления. Я хотел бы отобразить сообщение об ошибке. В настоящее время я отправляю сообщение как параметр через URL-адрес, однако это делает его довольно уродливым.

Есть ли способ передать это значение вместо переменной post?

Любые советы приветствуются.

Спасибо.

Ответ 1

Дэн. Вы можете начать и сохранить сеанс в PHP, затем сохранить сообщение как переменную сеанса. Это избавит вас от необходимости передавать сообщение в HTTP-запросе.

Манипуляция Сессии

//Start the session
session_start();

//Dump your POST variables
$_SESSION['POST'] = $_POST;

//Redirect the user to the next page
header("Location: bar.php");

Теперь в bar.php вы можете получить доступ к этим переменным POST, повторно инициировав сеанс.

//Start the session
session_start();

//Access your POST variables
$temp = $_SESSION['POST'];

//Unset the useless session variable
unset($_SESSION['POST']);

Чтобы узнать больше о сеансах, проверьте: http://php.net/manual/en/function.session-start.php

Ответ 2

Функция заголовка используется для отправки заголовков ответа HTTP обратно пользователю, поэтому на самом деле вы не можете использовать его для создания заголовков запросов: (

Одна из возможностей заключается в использовать CURL, но я не думаю, что это стоит того, что вы делает.

Ответ 3

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

if(something_went_wrong()) {
  require_once('errors.php');
  display_error('something really went wrong.');
  }

В файле errors.php будет содержаться определение для display_error($message), которое отображает отформатированное сообщение.