我坚持使用ajax响应,它始终位于其他部分,并且在会话的类中称为statusmsg并且还添加了元标记。 它在localhost中很好,但在现场没有。
输出:
<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);
}
答案 0 :(得分:2)
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 {
}