我正在尝试限制用户输入的密码,当用户忘记密码时,该密码输入错误。我正在做一个for循环,在循环中我给出了一个if语句。该密码已发送到他们的电子邮件,他们必须先输入密码,然后才能更改密码。看起来我的代码是错误的。
<?php
for($count=0;$count<5;$count++)
{
if($code != str_replace($unnecessary2, "", $validcode) && $count < 5)
{
http_response_code(406);
echo '[{"message":"code is invalid!"}]';
$count = $count+1;
die();
}
else if($code != str_replace($unnecessary2, "", $validcode) && $count == 5)
{
$deletedata="delete from personal_password_reset where email='".$dt[0]["email"]."'";
run_sql($deletedata);
http_response_code(406);
echo '[{"message":"you have entered invalid code 5 times, please request a new code."}]';
die();
}
else
{
http_response_code(200);
echo '[{"message":"code is valid!"}]';
die();
}
}
?>
如果第五次密码不正确,则用户应收到第二条消息you have entered invalid code 5 times, please request a new code.
。有人可以帮我吗?
答案 0 :(得分:1)
在会话中存储此类信息。
定义阈值,然后继续存储尝试
if(FAILED_LOGIN_CASE)/// {
if($_SESSION['failedAttempts']== Threshold) {
///attempts exceeded
}
else{
$_SESSION['failedAttempts']= $_SESSION['failedAttempts'] + 1;
}
}
else{
//login
$_SESSION['failedAttempts']=0;
}
如果成功登录,请将会话设置为0。
答案 1 :(得分:0)
您可以使用 Session 并在每次用户输入无效信息集counter ++之后将计数器保存为无效计数,最后将其提交给Session。 最后进行检查控制
if(Session['YOUR_SESSION'] == 5)
// your code place here
答案 2 :(得分:0)
在if语句中,您正在测试$ count == 5。
else if($code != str_replace($unnecessary2, "", $validcode) && $count == 5)
因为for循环在$ count <5处停止,所以count永远不会取值为5。
for($count=0;$count<5;$count++)