Php 限制在表单中输入的尝试次数
如何设置用户输入一次性密码的尝试次数? 如果用户第三次输入错误的密码,他将自动注销并需要再次登录。 我是否需要在SQL表上创建一个新的尝试次数列Php 限制在表单中输入的尝试次数,php,html,mysql,Php,Html,Mysql,如何设置用户输入一次性密码的尝试次数? 如果用户第三次输入错误的密码,他将自动注销并需要再次登录。 我是否需要在SQL表上创建一个新的尝试次数列 <form method="POST" action="" onSubmit="return validate(this)" > <input type="button" value="Click for OTP" onclick="openotp()" /> <b
<form method="POST" action="" onSubmit="return validate(this)" >
<input type="button" value="Click for OTP" onclick="openotp()" /> <br/> <br/>
<table id="table">
<tr>
<td class="alt"><label for="otp">Enter the 6-digit iBanking OTP </label></td>
<td><input type="password" name="otp" maxlength="6"></td>
</tr>
</table>
<br/>
<input type="submit" name="submit" value="Click to submit OTP">
</form>
<?php
$user_id = $_SESSION['user_id'];
if(isset($_POST['submit'])){
$otp = $_POST['otp'];
$query = "SELECT otp FROM user where user_id='$user_id'";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$row = mysqli_fetch_array($result);
$rand = $row['otp'];
if ($otp == $rand) {
$query = "SELECT * FROM user WHERE user_id='$user_id' AND otp='$otp'";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
echo "<script>location.href='index.php'</script>";
} else {
echo "Wrong password";
}
}
?>
使用会话变量
$_SESSION['attempts']
然后在失败的条件语句中,将$_会话['attempts']增加1。然后在你的页面上说
if ($_SESSION['attempts'] < 3)
{
//do stuff
}
else
{
echo "too many login failures";
}
我应该为$_会话['attempts']创建一个数组吗?当会话失败时,我如何将会话增加1?在登录失败的登录脚本的其他部分添加$_会话['attempts'++;如何将else{}上的尝试设置为0?如果将其设置为0,则用户将能够继续尝试登录。无论如何,要做到这一点,您需要$_SESSION['truments']=0;