如何在3次错误尝试中退出应用程序

时间:2015-06-04 04:48:41

标签: php mysql

我已经创建了一个登录页面,其中检查了尝试次数。现在的问题是它锁定了用户,但保持计数器数量增加的计数器。我想退出停止计数器增量。请帮忙!

<html>
<head><title>Meeting Room Application</title>
<script type="text/javascript">
 function validation()
 {
    var uname=document.forms["Login"]["txtuid"].value;
    var pwd=document.forms["Login"]["txtpwd"].value;
    if((uname==null || uname=="") && (pwd==null || pwd==""))
    {
        alert("Please fill all the details");
        return false;
    }
    if(uname==null || uname=="")
    {
        alert("Please enter username");
        return false;
    }
    if(pwd==null || pwd=="")
    {
        alert("Please enter password");
        return false; 
    }
    if(noofattempt>=3)
        return false;
   }
   </script>
   </head>
   <body background="a6.jpg">
   <?php
          session_start();
          if(isset($_SESSION['loginattempt']))
          $NoOfAttempt=(int) $_SESSION['loginattempt'];
          else
          $NoOfAttempt=0;
     ?>
      <table align="center" cellpadding="5" cellspacing="5">
      <tr><td colspan="2" align="center"><img src="LOGO.jpg" width="275px;">     </td></tr>
      <tr><th align="center" colspan="2">Kindly provide Login Details</th</tr>
     <form method="post" name="Login" action="checkdb.php" onsubmit="return validation()" >
     <tr><td align="right"><b>UserId : </td><td><input type="text" name="txtuid" placeholder="user"></td></tr>
      <tr><td align="right"><b>Password : </td><td><input type="password" name="txtpwd" placeholder="*****"></td></tr>
  <tr><td></td>
  <td><font color="red">
  <?php 
      if(isset($_SESSION['error']))
      { 
            echo $_SESSION['error']."<br>"; 
            echo "No Of Attempt ". $NoOfAttempt;
      }
        if($NoOfAttempt>=3)
                echo "<br>Your Account Has been Locked..Contact Admin";
       ?> </font></td></tr>
       <tr><td colspan="2" align="center"><input type="submit" value="Sign in">
       <input type="reset" value="Reset"><input type="hidden" name='NoOfAttempt' value= <?php echo $NoOfAttempt;  ?> /></td>
         </tr>
         </form>
         </div>
         </div>
         </table>
         </body>
         </html>

1 个答案:

答案 0 :(得分:1)

您没有在validation()函数中检索隐藏的表单值NoOfAttempt。

DBCC FREEPROCCACHE

请注意,这将阻止用户在达到限制后的其他时间意外提交表单,但正如之前的评论者所说,这可以很容易地被试图这样做的人覆盖,甚至是可能只是禁用了Javascript。因此,应该在PHP代码中的其他位置强制执行限制。