2012-01-05 57 views
0

我被ajax響應卡住了,它總是進入其他部分,它在會話的類中打印出沒有名爲statusmsg,並且還添加元標記。 在本地主機上沒問題,但沒有在現場。ajax響應總是進入其他部分

輸出:

<div class="statusmsg"> 
Welcome 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> 
<title>Untitled Document</title> 
no 
</div> 

這是我與阿賈克斯jQuery的登錄代碼

 $.ajax({    
        type: "POST", 
        url:"scripts/ajax_login.php", 
        data:"account="+account+"&pswd="+password, 

        beforeSend: function() 
        { 
         $(".login_result").show(); 
        }, 
        success: function(resp) 
        { 

         if($.trim(resp) == 'no') 
         { 
          $(".warn_msg").html("Wrong Username/Email And/or Passwrd"); 
          return false;        
         } 
         else 
         { 
          $(".statusmsg").html("Welcome "+$.trim(resp)); 
          $(".loginArea").hide(); 
          $(".sh_logout").show();              
         } 
        }, 

        complete: function() 
        { 
         $(".login_result").hide(); 
        }, 

        error: function(e) 
        { 
        alert('Error: ' + e); 
        } 

       }); //end Ajax 

        }//else 
       return true; 
       }//function 

========================================= 
ajax_login.php 

session_start(); 

include(dirname(dirname(__FILE__))."/includes/config.php"); 

$account = mysql_real_escape_string($_POST['account']); 
$password = mysql_real_escape_string(md5($_POST['pswd'])); 

$sql = (strpos($account,'@')===false)?"SELECT * FROM register_members WHERE username = '".$account."' AND password = '".$password."'":"SELECT * FROM register_members WHERE password = '".$password."' AND email = '".$account."' "; 

$qry = mysql_query($sql); 
$msg = mysql_num_rows($qry); //returns 0 if not already exist 
$row = mysql_fetch_assoc($qry); 


if(!$msg > 0) 
{ 
    echo trim('no'); 
} 
else 
{ 
$_SESSION['user'] = $row['username'];  
$user = trim($_SESSION['user']); 
echo trim($user); 
} 
+0

先看看什麼是使用'的console.log(RESP)在'resp'未來' – diEcho 2012-01-05 17:56:40

+0

對我來說這看起來奇怪:'如果(!$ msg> 0){'。基本上如果你的'$ msg'是0,它變成1,反之亦然......把!括號外。 – Jules 2012-01-05 17:59:55

+0

如果用戶輸入錯誤的用戶名和密碼,然後它不打印其他用戶的名稱,但用戶輸入錯誤的用戶名和密碼它仍然顯示沒有在狀態消息在會話中歡迎沒有 – 2012-01-05 18:00:44

回答

2
if(!$msg > 0) 
{ 
    echo trim('no'); 
} 

應該

if !($msg > 0) 
{ 
    echo trim('no'); 
} 

否則你是否定在$味精的價值。如果這是0,它變成1,如果它是1,它變成0.(基本否定布爾值)。

因此,1和0都不會大於0,因此也不會是echo trim('no');

但基本上你可以檢查是否$msg等於零,如:

if ($msg == 0) { 
    echo trim('no'); 
} 
else { 

} 
+0

它在cs5 dreamweaver中輸入錯誤進入!解析錯誤:語法錯誤,意外的'!',期待'('在E:\ wamp \ www \ php_site \ scripts \ ajax_login.php上線 – 2012-01-05 18:08:13

+0

呃..請發佈您的代碼。不應該發生。但是基本上,你也可以做一個等於比較。檢查我的答案。 – Jules 2012-01-05 18:16:06

+0

它在本地主機上很好,但在現場它仍然沒有給出額外的中繼標記

Welcome Untitled Document no
2012-01-05 18:24:54