Я пытаюсь использовать заголовок () функция для создания перенаправления. Я хотел бы отобразить сообщение об ошибке. В настоящее время я отправляю сообщение в качестве параметра через URL, однако это заставляет его выглядеть довольно ужасным.
Существует ли способ передать это значение как переменную сообщения вместо этого?
Любой совет ценится.
Спасибо.
Дэн, Вы можете запустить и сохранить сеанс в 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
Используется функция заголовка для отправки заголовков HTTP-ответа обратно пользователю, поэтому на самом деле вы не можете использовать его для создания заголовков запросов: (
Одна из возможностей - использовать CURL , но я не думаю, что это стоит того, что вы делаю.
При условии, что у вас есть локальный доступ к странице, на которой отображается ошибка, вместо перенаправления вы можете включить ее на страницу, вызвавшую ошибку, а затем программно отобразить сообщение об ошибке.
if(something_went_wrong()) {
require_once('errors.php');
display_error('something really went wrong.');
}
Файл errors.php
будет содержать определение для display_error ($ message)
, которое отображает отформатированное сообщение.