Я делаю простой механизм регистрации, который хранит имя пользователя и пароль в базе данных MySQL. Как это устроено:
echo '0'
, Если нет, то это echo '1'
и вставляет значения в базу данных.Затем Jquery проверяет ответ и выполняет соответствующее действие.
$.ajax({
type: "POST",
url: "register.php",
data: {usn:us, pwd: pw},
cache: false,
success: function(result){
console.log(result);
if (result=='1'){
window.location = "next.php";
}else{
errorMessage= "Username taken. <br>";
$("#regerrormsg").html(errorMessage);
}
}
});
PHP:
include 'dbconnect.php';
$us = $_POST["usn"];
$pw = $_POST["pwd"];
$tryus = $conn->query("SELECT Username from users WHERE Username='" . $us . "'");
if ($tryus->num_rows == 0){
echo '1';
$conn->query("INSERT INTO users (ID, Username, Password) VALUES (DEFAULT, '" . $us . "', '" . $pw . "')");
session_start();
$_SESSION["user"] = $us;
}else{
echo '0';
}
Теперь вот странная вещь. Это в значительной степени работает, за исключением одной части. Запрос действительно проверяет, существует ли имя пользователя, и отображает соответствующее значение («0» или «1»). Я проверил это, войдя в выходной файл в файле JavaScript. Я также проверил свою базу данных, и она никогда не хранит дубликата пользователя. Но по какой-то странной причине window.location = "next.php"
; никогда не выполняется, даже если значение вывода равно 1. Это всегда идет в блок «остальное».
Есть идеи, почему это происходит?
Благодарю.
Лучший способ проверить ответы бэкэнда — использовать REST Api Client. Почтальон самый популярный, но я предпочитаю Бессонница. Попробуйте, на мой взгляд, это необходимо для разработки интерфейса.
Пожалуйста, измените код ниже:
if ($tryus->num_rows == 0){
echo '1';
$conn->query("INSERT INTO users (ID, Username, Password) VALUES (DEFAULT, '" . $us . "', '" . $pw . "')");
session_start();
$_SESSION["user"] = $us;
}else{
echo '0';
}
к этому:
if ($tryus->num_rows == 0){
$conn->query("INSERT INTO users (ID, Username, Password) VALUES (DEFAULT, '" . $us . "', '" . $pw . "')");
echo '1';
}else{
echo '0';
}
exit();
Создайте сессию в переменной в файле next.php.
+ Изменить window.location = "next.php";
в document.location.href="http://your-site-url.com/next.php";