Php 限制在表单中输入的尝试次数

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

如何设置用户输入一次性密码的尝试次数? 如果用户第三次输入错误的密码,他将自动注销并需要再次登录。 我是否需要在SQL表上创建一个新的尝试次数列

            <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;