注册、登录等失败的错误信息-使用$GLOBAL order $_SESSION


Error-message for failed register, login etc. - Use $GLOBAL oder $_SESSION?

例如:如果有人在我的网页上登录功能失败(例如:输入错误的密码),我想在网页上显示一个错误信息。我的想法是这样的:

    if(doLogin()) {
        //....
    }else {
        $GLOBAL['errorLogin'] = "Wrong Userdata";
    }

,然后回显.html中的全局变量。

但是我也搜索了这个主题,只发现了这个方法,但是每个人都使用了$_SESSION变量而不是$GLOBAL。

我的$GLOBAL变量的变体是错误的还是不好的做法?为什么使用$_SESSION的错误消息,如果我只回送消息一次,不需要它在下一次请求?

我认为你的意思是$GLOBALS(注意s),这是一个子全局变量,因此可以从PHP脚本中的任何地方访问(也可以从函数或方法内)。

我不认为您应该使用$_SESSION变量,因为用户只需要看到一次错误消息。在您的情况下,在大多数情况下,这就是为什么将它存储在会话中可能没有意义的原因。

个人而言,我只会使用自定义errorMessage-Array,像这样:

//store all Error Messages in one array.
$errorMessages = array();
if(doLogin()) {
    //....
}else {
    $errorMessages["Login"] = "Wrong Userdata";
}
//...
foreach($errorMessages as $key=>$message){
   echo $key.": ".$message."<br>";
}