ajax响应总是在其他部分


ajax response always go in else part

我被ajax响应卡住了,它总是进入else部分,它在会话的名为statusmsg的类中打印no,还添加了meta标记。它在本地主机中很好,但在实时站点中不好。

输出:

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

这是我使用ajax 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);   
}
if(!$msg > 0)
{   
    echo trim('no');
}

应该是

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

否则,您将否定$msg中的值。如果为0,则变为1;如果为1,则变0。(布尔值的基本否定)。

因此,1和0都不会大于0,因此它永远不会echo trim('no');

但基本上,你可以检查$msg是否等于零,比如:

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