2014-04-12 29 views
1

我正在使用jQuery做一個基本的登錄系統,它對我來說似乎一切都很好,但我總是在這裏輸入im我的jquery:alert('Error in system');jQuery消息驗證程序其工作不正常

但它很奇怪,因爲當我這樣做alert(answer);其顯示我的所有數據我的$_SESSION['userlogin']

有人在那裏明白什麼可能是錯的?

林有這樣的jQuery顯示在登錄表單驗證消息:

$('form').submit(function(){ 
     var login = $(this).serialize() + '&action=login'; 
     $.ajax({ 
      url: 'switch/login.php', 
      data: login, 
      type: 'POST', 
      success: function(answer){ 
       if(answer == 'errorEmpty'){ 
        $('.msg').empty().html('<p class="warning">Informe seu usuário e senha!</p>').fadeIn('slow'); 
       } 
       else if (answer == 'errorPass'){ 
        $('.msg').empty().html('<p class="error">Error ,wrong pass or username!</p>').fadeIn('slow'); 

       } 
       else if(answer == 'sucess'){ 
        window.setTimeout(function(){ 
         $(location).attr('href','dashboard.php'); 
       },1000); 
       } 
       else{ 
        alert('Error in system'); 
       } 
       alert(answer); 
      }, 
      beforeSend: function(){ 
       $('.loginbox h1 img').fadeIn('fast'); 
      }, 
      complete: function(){ 
       $('.loginbox h1 img').fadeOut('slow'); 
      }, 
      error: function(){ 
       alert('Error in system'); 
      } 

     }); 
     return false; 
    }); 

}); 

然後,我有我的PHP文件:

switch ($action){ 
    case 'login': 
     $user = $_POST['user']; 
     $pass = $_POST['pass']; 

     if(!$user || !$pass){ 
      echo 'errorEmpty'; 
     }else{ 
      $searchUser = $pdo->prepare("SELECT * FROM admins WHERE login=:login AND pass=:pass"); 
      $searchUser->bindValue(":login", $user); 
      $searchUser->bindValue(":pass", $pass); 
      $searchUser->execute(); 
      $num_rows = $searchUser->rowCount(); 
      $result = $pesquisaUser->fetch(PDO::FETCH_ASSOC); 

      if($num_rows>=1){ 

       $_SESSION['userlogin'] = $result; 
       echo 'sucess'; 
       print_r($_SESSION['userlogin']); 
      } 
      else{ 
       echo 'errorPass'; 
      } 
     } 
    break; 
    default: 
     echo 'Error'; 

} 
+1

您是否嘗試過''echo''echo'''echo'sucess'之後放置'return'語句;返回;'? –

+0

謝謝,它可行,但我真的認爲在這種情況下並不需要。你能給出答案,我可以接受嗎? – OzzC

回答

0

return;echo sucess聲明,我認爲這個問題是print_r($_SESSION['userlogin']);

放置return;print_r將不會執行。

echo 'sucess'; 
return; 
+0

你說得對,問題真的是這樣!謝謝 :) – OzzC