我被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);
}
先看看什麼是使用'的console.log(RESP)在'resp'未來' – diEcho 2012-01-05 17:56:40
對我來說這看起來奇怪:'如果(!$ msg> 0){'。基本上如果你的'$ msg'是0,它變成1,反之亦然......把!括號外。 – Jules 2012-01-05 17:59:55
如果用戶輸入錯誤的用戶名和密碼,然後它不打印其他用戶的名稱,但用戶輸入錯誤的用戶名和密碼它仍然顯示沒有在狀態消息在會話中歡迎沒有 – 2012-01-05 18:00:44