"r 〃;在jquery-ajax-html的警报中

" " in alert for jquery ajax html

本文关键字:jquery-ajax-html quot      更新时间:2023-09-26

我有一个ajax请求,看起来像这个

$(document).ready(function() {
    $(document).on('click', '#submit', function() {
        var UserName = $('#username').val();
        var PassWord = $('#password').val();
        console.log(UserName);
        $.ajax({
            type: 'POST',
            url: 'ajax/Login.php',
            dataType: "text",
            data: {
                username: UserName,
                password: PassWord
            },
            success: function(data) {
                alert(JSON.stringify(data));
                window.location='pages/mainpage.php';
            },
            error: function(data) {
                alert('Login Error');
                //window.location='../index.php';
            }
        });
    });
});

我的php就像这个

$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if (isset($username)) {
    $stmt = $dbh->prepare("SELECT * FROM userlist_tbl WHERE username = ? ");
    $stmt->bindValue(1, $username);
    $stmt->execute();
    $selected_row = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($selected_row['username'] === $username) {
        if ($selected_row['password'] === $password) {
            $_SESSION['login_user'] = $username;
            echo "Welcome ".$username;
        }else{
    echo "Password incorrect";
}
    }
}else{
    echo "Username is empty";
}

当我没有在用户名中输入任何内容时,我希望警报将是Username is empty,与密码为空时相同。警报应该是Password incorrect,但我得到的是"'r'n'",但如果在用户名中添加一些内容,如John,它会提醒Welcome John"'r'n'"为什么会发生这种情况?当用户名和密码为空时,如何提醒Username is empty?任何想法都可以接受。。

试试这个:在ajax部分,dataType: "text",更改为dataType: "json",,服务器php代码如下:它可能工作于

  //put this function top of this page
   ob_start(); 
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
       $json="";
            if (isset($username)) {

       $stmt = $dbh->prepare("SELECT * FROM userlist_tbl WHERE username = ? ");
            $stmt->bindValue(1, $username);
            $stmt->execute();
            $selected_row = $stmt->fetch(PDO::FETCH_ASSOC);
            if ($selected_row['username'] === $username) {
                if ($selected_row['password'] === $password) {
                    $_SESSION['login_user'] = $username;
                     $json.="Welcome ".$username;
                }else{
            $json.="Password incorrect";
        }
            }
        }else{
             $json.="Username is empty";
        }
   ob_end_clean(); 
   echo json_encode($json);
?>

我将isset更改为!empty修复了问题