我想建議你幾個解決方案。
解決方案1
GET參數(事實上你說不想) 我看不出有任何問題與發送GET帕拉姆,因爲它不包含任何敏感數據。作爲一個例子,你可以使用一些內部的代碼。 例如: 您定義了一些代碼。
$code = 1; // This should be dynamic like,
// 1 => When Password wrong,
// 2 => When login ID not exists,
// 3 => when unknown error occurred
header('Location: error.php?err=' . $code);
所以在error.php你可以檢查。
$errorCode = $_GET['err'];
switch($errorCode)
{
case 1;
{
echo "Password wrong";
break;
}
case 2;
{
echo "login ID not exists";
break;
}
// Add custom messages as you wish
}
解決方案2
使用會話。如果您有多個標籤,我認爲沒關係。在您的密碼檢查代碼中,您可以在重定向之前啓動會話。
$_SESSION['ERROR_MESSAGE'] = "Whatever you want";
然後在你的error.php(重定向頁面),您可以檢查
if(isset($_SESSION['ERROR_MESSAGE']))
{
echo $_SESSION['ERROR_MESSAGE'];
unset($_SESSION['ERROR_MESSAGE']);
}
解決方案3
而不是PHP重定向,您可以生成隱藏的形式POST操作並且您可以分配相關的錯誤消息到執行時
<form name="frmError" id="frmError" method="POST" action="error.php">
<input type="hidden" name="error" value="<?php echo $errorMessage; ?>" />
</form>
然後編寫一個javascript函數來發布你的表單。
<script type="text/javascript">
function submitform()
{
document.frmError.submit();
}
</script>
然後修改你的身體標記爲波紋管
<body <?php if(isset($errorMessage)) {?> onload="submitform();" <?php } ?> >
希望這將幫助你決定。