У меня есть запрос Ajax, который выглядит, как этот« г п » в боевой готовности для JQuery Ajax HTML
$(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';
}
});
});
});
и мой РНР как этот
$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
, когда имя пользователь пуст же пароль любой идея будет принята ..
У вас есть что-нибудь еще после этих «эхо»? Попробуйте 'die()' или 'exit()' после них. –
попытался выйти из того же результата, но когда я пытаюсь умереть, это предупреждение только '' "' sir @MihaiIorga – guradio
Попробуйте использовать trim для удаления пробелов: 'alert ($ .trim (JSON.stringify (data))) ;, или, еще лучше, вернуть объект JSON с сообщением в качестве значения. Таким образом, не может быть лишних пробелов вокруг границ ответа. –