0

好的...所以...我的第一个问题在这里,请多多包涵。

我已经制作了一个包含注册、MySQL 数据库等的登录脚本。到目前为止,它运行良好。除了刷新页面时,即使我还没有输入任何信息,它也会给我不正确的登录信息错误。第一次加载页面,或者如果我登录一个假用户,然后注销,它会起作用。但这是代码

    if($_SESSION["logged"])
{
         print_secure_content();
}
else {
        if(!$_SESSION["logging"])
        {  
        $_SESSION["logging"]=true;
        echo "Login:";
        loginform();
        }
         else if($_SESSION["logging"])
           {
                 $number_of_rows=checkpass();
                 if($number_of_rows==1)
                        {       
                         $_SESSION[user]=$_POST[userlogin];
                         $_SESSION[logged]=true;
                         echo"<h1>you have logged in successfully</h1>";
                         print_secure_content();
                        }
                else{
                                   echo "wrong password or username, please try again";
                                    loginform();



                        }
                }

         }
4

1 回答 1

1

那是因为您正在存储是否在$_SESSION.

当显示登录表单时,$_SESSION['logging']设置为true。然后,您成功登录(它仍然设置为 true)。下次您看到登录表单时,它仍设置为true,因此它会尝试检查您的用户名/密码组合,从而检查错误。

与其$_SESSION['logging']用来确定是否应该验证用户名/密码,不如检查$_POST数组中是否存在用户名和密码字段,因为这些字段仅在用户提交表单时出现。

于 2013-01-10T02:22:11.053 回答