2

这是php中的代码

    <?php session_start();

 //Connect to database from here
    $link = mysql_connect('****', '****', '****'); 
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    //select the database | Change the name of database from here
    mysql_select_db('****'); 

//get the posted values
$user_name=htmlspecialchars($_GET['user_name'],ENT_QUOTES);
$pass=$_GET['password'];

//now validating the username and password
$sql="SELECT user_name, password FROM tbl_user WHERE user_name='".$user_name."'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);

//if username exists
if(mysql_num_rows($result)>0)
{
    //compare the password
    if(strcmp($row['password'],$pass)==0)
    {
        // Return success message
        $message = array("flag" => "1", "msg" => "Login successfully.");
        echo json_encode($message);
         //Regenerate session ID to prevent session fixation attacks
        //session_regenerate_id();


        //now set the session from here if needed
        //$_SESSION['u_name']=$user_name; 
        //$member=mysql_fetch_assoc($result);
        //$_SESSION['u_id']=$member['id'];
        //$name_show=$member['first_name'].' '.$member['last_name'];
        //$_SESSION['name']=$name_show;
            //Write session to disc
            //session_write_close();

        }
    else
        // Return error message
        $message = array("flag" => "0", "msg" => "Incorrect password.");
        echo json_encode($message);
}
else    //if username not exists
{       // Return error message
        $message = array("flag" => "0", "msg" => "Incorrect id.");
        echo json_encode($message);
}
mysql_close($link);     
?>

这是html中的代码

                  $.ajax({
                type: "get",
                url: "http://mydomain.com/ajax_login.php",
                data: {
                    user_name: $("#username").val(),
                    password: $("#password").val()
                },
                success: function(jsondata){

                    if (jsondata.flag == "0"){
                         //if flag is 0, indicate login fail
                    }
                    else {
                         //if flag is 1, indicate login success and redirect to another page
                        window.location.href = 'ABC.html';
                    }                       
                },
                datatype: "json"
            });

显示节目"{\"flag\":\"0\",\"msg\":\"Incorrect id.\"}"

我的问题是,现在即使标志为 0,它仍然转到 ABC.html 应该修改 if 子句,以便如果标志为 0,它仍将在子句的真实部分中?

编辑这是编码的更多细节

4

2 回答 2

1

也许jsondata.flag是未定义的。
您需要解码响应字符串以将其用作 JS 对象。
或者设置dataType : 'json'...

于 2013-03-13T22:16:24.467 回答
1

请务必dataType: "json"在您的 jQuery ajax 方法中配置您的 ajax 调用,并确保在您的 PHP 响应中发送 JSON 标头,例如。

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Content-type: application/json");
echo json_encode($yourArray);

如果您没有正确配置您的 ajax 调用,则结果可能会被解释为一个简单的字符串。

于 2013-03-13T22:17:10.990 回答