2013-01-10 66 views
0

好吧...所以...我的第一个问题在这里,请耐心等待。刷新时显示的登录信息不正确:PHP LOGIN SCRIPT

我做了一个登录脚本,注册,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(); 



         } 
       } 

     } 

回答

1

那是因为你存储是否要验证在$_SESSION的用户名/密码。

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

而不是使用$_SESSION['logging']以确定是否应该验证用户名/密码,您应检查$_POST阵列中的用户名和密码字段的存在,因为这些东西会出现,只有当用户提交表单。