Я пытаюсь использовать функцию header () для создания перенаправления. Я хотел бы отобразить сообщение об ошибке. В настоящее время я отправляю сообщение как параметр через URL-адрес, однако это делает его довольно уродливым.
Есть ли способ передать это значение вместо переменной post?
Любые советы приветствуются.
Благодарю.
Дэн, вы можете начать и сохранить сеанс в 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)
, которое отображает форматированное сообщение.