好的......所以...我在这里的第一个问题,请耐心等待。
我已经创建了一个带注册,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();
}
}
}
答案 0 :(得分:1)
那是因为你要存储是否验证$_SESSION
中的用户名/密码。
显示登录表单时,$_SESSION['logging']
设置为true
。然后,您成功登录(它仍然设置为true)。下次您看到登录表单时,它仍然设置为true
,因此会尝试检查您的用户名/密码组合,从而检查错误。
您应该检查$_SESSION['logging']
数组中是否存在用户名和密码字段,而不是使用$_POST
来确定是否应该验证用户名/密码,因为这些字段将存在仅当用户提交表单时。