美好的一天我在创建登录尝试时遇到问题,如果用户输入错误的详细信息进行 5 次尝试,这将阻止现有帐户登录我有一个 ajax 和一个数据库
我尝试捕获值为 0 的尝试。然后每次失败它都会给出 + 1,但它不会添加超过一个,因为我认为 ajax 命令会再次刷新它,因此尝试仅接收 1 个循环。
登录部分正在工作,但我无法使尝试工作,如果尝试超过 5 15 分钟,你知道如何阻止用户我已经搜索了它的代码,但它最后一次使用是在 2007 年所以一些php无法读取代码
这是我的ajax代码:
在登录页面上,这里是 ajax 代码:
> <script type="text/javascript"> function validLogin(){
> var uname=$('#uname').val();
> var password=$('#password').val(); var attempts=0;
>
> var dataString = 'uname='+ uname + '&password='+ password;
> $("#flash").show();
> $("#flash").fadeIn(400).html('<img src="images/loading.gif" />');
> $.ajax({
> type: "POST",
> url: "login_processed.php",
> data: dataString,
> cache: false,
> success: function(result){
> var result=trim(result);
> $("#flash").hide();
> if(result=='correct0'){
> window.location='user_home.php';
> }
> else if(result=='correct1'){
> window.location='admin_home.php';
> }else{
> $("#errorMessage").html(result);
> $attempts++;
> }
>
> }
> }); } function trim(str){
> var str=str.replace(/^\s+|\s+$/,'');
> return str; } </script>
这是用于处理登录的 login_process.php 代码,它在其中捕获结果和错误。
> $message=array(); $attempts=0; if(isset($_POST['uname']) &&
> !empty($_POST['uname'])){
> $uname=mysql_real_escape_string($_POST['uname']); }else{
> $message[]='Please enter username'; }
>
> if(isset($_POST['password']) && !empty($_POST['password'])){
> $password=mysql_real_escape_string($_POST['password']); }else{
> $message[]='Please enter password'; }
>
> $countError=count($message);
>
> if($countError > 0){
> $attempts++; echo $attempts; for($i=0;$i<$countError;$i++){
> echo ucwords($message[$i]).'</br>';
>
> }
>
> }
>
>
> else{
> $query="select * from user where uname='$uname' and BINARY password='$password'";
>
> $res=mysql_query($query);
> $checkUser=mysql_num_rows($res); $row = mysql_fetch_assoc($res);
> if($checkUser > 0){
> $_SESSION['LOGIN_STATUS']=true;
> $_SESSION['UNAME']=$uname;
> echo 'correct'.$row['type'];
> }else{
> echo ucwords('Incorrect Username or Password');
>
> } }
任何帮助将非常感激。你能教我登录尝试阻止用户吗,因为如果我阻止尝试错误的用户的 ip,它会广泛影响一个人登录的地方,例如电脑商店。:D 谢谢