Как использовать POST, а не GET в этом конкретном сценарии

У меня есть форма, называемая insert_comment.php, которая содержит эту функцию:

function died($error) { // if something is incorect, send to given url with error msg header("Location: http://mydomain.com/post/error.php?error=" . urlencode($error)); die(); } 

Далее вниз код, $ error_message отправляется на функцию die, тогда функция die перенаправляет пользователя на mydomain.com/post/error.php, где я получаю сообщение об ошибке из URL:

 $error = $_GET["error"]; echo 'some text '. $error .' sometext'; 

Есть ли способ сделать то же самое с помощью перенаправления POST? Мне не нравится отображать полное сообщение об ошибке в URL-адресе, оно выглядит очень уродливо.

Хотя это возможно, хотя и сложно сделать это с помощью POST, это неправильная стратегия, а не цель запроса POST.

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

 // session_start() must have been called already, before any output: // Best to do this at the very top of your script session_start(); function died($error) { // Place the error into the session $_SESSION['error'] = $error; header("Location: http://mydomain.com/post/error.php"); die(); } 

error.php

 // Read the error from the session, and then unset it session_start(); if (isset($_SESSION['error'])) { echo "some text {$_SESSION['error']} sometext"; // Remove the error so it doesn't display again. unset($_SESSION['error']); } с // Read the error from the session, and then unset it session_start(); if (isset($_SESSION['error'])) { echo "some text {$_SESSION['error']} sometext"; // Remove the error so it doesn't display again. unset($_SESSION['error']); } 

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