汚い修正:
function error($error, $location, $seconds = 5)
{
$urlToRedirect = $location . '?error_message=' . urlencode($error) ;
header('Location: ' . $urlToRedirect);
exit;
}
より良い解決策は、次のようなエラー メッセージの配列を作成することです。
$errorMessages = array(
'incorrect_login' => 'Incorrect login credentials.',
'restricted' => 'Restricted page.'
);
次に、エラー関数を書き直して秒パラメーターを削除します。これは、更新を使用しなくなったためです (個人的には、場所パラメーターも削除して、すべてのエラー リダイレクトが同じページを指すようにします)。
function error($error, $location)
{
$urlToRedirect = $location . '?error_message=' . $error ;
header('Location: ' . $urlToRedirect);
exit;
}
次に、次のように関数を呼び出します。
error('restricted', 'error.php');
次に、エラーを表示するページで次のようにします。
if(isset($_GET['error_message']) && array_key_exists($_GET['error_message'], $errorMessages)){
echo $errorMessages[$_GET['error_message']];
}