在PHP中传递错误消息

Rog*_*are 7 php redirect

我的网站上有一个登录表单,用于检查提交的用户名/密码.如果没有匹配,则将用户发送回登录页面并显示相应的错误消息.对此重定向的调用是这样的:

header("location:../login.php?error_message=$error_message");
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但在浏览器的地址栏中看起来很麻烦(特别是描述性错误消息).有没有办法在不使用$ _GET变量的情况下进行自动重定向?我曾考虑使用$ _SESSION变量,但这似乎不是最好的编码实践.

谢谢阅读.

van*_*eto 6

那么有一个更简单的GET变量呢?

// something.php
header ("Location: foo.php?err=1");
Run Code Online (Sandbox Code Playgroud)

然后在处理错误的页面中:

// foo.php
$errors = array (
    1 => "Hello, world!",
    2 => "My house is on fire!"
);

$error_id = isset($_GET['err']) ? (int)$_GET['err'] : 0;
if ($error_id != 0 && in_array($error_id, $errors)) {
    echo $errors[$error_id];
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.