2014-01-19 57 views
0

错误消息假设:
1)。我的登录表单有两个字段注册,其中一个按钮时调用的登录密码(提交)
2)。我的后端脚本login.php没有错误
这里是我通过登录表单发送数据并将其与后端进行比较的代码,现在问题是当我提供正确的密码和登录所需的登记时,事件已成功完成但是当我提供错误的证书时,它没有显示ajax()error:function()中显示的错误消息,尽管当我双击登录按钮然后页面会自动刷新时,消息会显示一段时间。任何人都可以帮助当输入错误的密码时,我得到错误信息
没有得到在AJAX()方法的jquery

$(function(){ 
/*$('#err').hide();*/ 
$('.err').hide(); 
/*$('.error').hide();*/ 
$('#eno').blur(function(){ 
    var eno = $('input#eno').val(); 
    if(eno == ""){ 
     $('#err_eno').show(); 
     $('input#eno').focus(); 
     return false; 
    }else{ 
     $('#err_eno').hide(); 
    } 
}); 

$('#pw').blur(function(){ 
    var pw = $('input#pw').val(); 
    if(pw == ""){ 
     $('#err_pw').show(); 
     $('input#pw').focus(); 
     return false; 
    }else{ 
     $('#err_pw').hide(); 
    } 
}); 

$('#submit_btn').click(function(){ 

    var dataString = $('#log').serialize(); 
//alert (dataString);return false; 
$.ajax({ 
      type:"POST", 
      url:"script/login.php", 
      data:dataString, 
      success:function(){ 
        window.location='profile.php'; 
      }, 
      error:function(){ 
       $('#err').html("<p>Provide right combination</p>"); 
      } 
     }); 
return false; 
}); 

});

回答

0

嘛,总是执​​行你的成功的功能,尝试用下面的实现:

$.ajax({ 
      type:"POST", 
      url:"script/login.php", 
      data:dataString, 
      success:function(x){ 
      if (x == 1) 
      { 
     window.location='profile.php'; 
      } 
      else 
      { 
     //Handle Error Here 
       $('#err').html("<p>Provide right combination</p>"); 

      } 
      } 
     }); 

的login.php

<?php 

//execute code 

//if success 
print "1"; 
//else 
print ""; 
?> 
下面
+0

thax解决了这个问题... – BakerStreet221

+0

下面是我的login.php,在这里我设置了一个名为'eno'的cookie,以便当用户在登录成功后再次尝试登录时,他/她将直接重定向到profile.php如果没有注销,但一些如何不工作。 – BakerStreet221

+0

'<?php include“../ db/connect.php”; session_start(); $ password = $ _POST ['pw']; $ eno = $ _POST ['eno']; $ password_hash = md5($ password); if(!empty($ eno)&&!empty($ password)){$ query =“select * from eno ='$ eno'AND password ='$ password_hash'”; $ result = $ db-> query($ query); if($ result-> num_rows){$ _SESSION ['login'] = $ _POST ['eno']; if($ _ POST ['cb']){setcookie('eno',$ _ POST ['eno'],time()+ 3600); }打印“1”; } else {setcookie('eno',$ _ POST ['eno'],time() - 3600); session_regenerate_id(); session_destroy();打印“”; }}?>' – BakerStreet221

0

The error function in called when a request fails,在你的情况下,ajax函数成功执行。你必须做的是将ajax函数的dataType属性设置为json,并传递一个json数组作为服务器的响应。看到更多的信息here

实施例下面:

$.ajax({ 
      type:"POST", 
      url:"script/login.php", 
      data:dataString, 
      dataType:"json", 
      success:function(data){ 
        if(data.error==true){  
         $('#err').html("<p>Provide right combination</p>"); 
        }else{ 
         window.location='profile.php'; 
        } 
      }, 
      error:function(){ 

      } 
     }); 

});

你的login.php

//if success 
echo json_encode(array('success'=>TRUE)); 
//else if password failed 
echo json_encode(array('error'=>TRUE)); 

我希望这是有帮助的。

+0

是我的login.php中,我设置的cookie被称为“ eno',以便当用户在登录成功后再次尝试登录时,他/她将直接重定向到profile.php,如果没有登出但是有些如何不工作。 – BakerStreet221

+0

'<?php include“../ db/connect.php”; session_start(); $ password = $ _POST ['pw']; $ eno = $ _POST ['eno']; $ password_hash = md5($ password); if(!empty($ eno)&&!empty($ password)){$ query =“select * from eno ='$ eno'AND password ='$ password_hash'”; $ result = $ db-> query($ query); if($ result-> num_rows){$ _SESSION ['login'] = $ _POST ['eno']; if($ _ POST ['cb']){setcookie('eno',$ _ POST ['eno'],time()+ 3600); }打印“1”; } else {setcookie('eno',$ _ POST ['eno'],time() - 3600); session_regenerate_id(); session_destroy();打印“”; } 012?>> – BakerStreet221