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)
, которое отображает отформатированное сообщение.