Тестирование ответа PHP в Ajax ⇐ Jquery
-
Гость
Тестирование ответа PHP в Ajax
Я создаю простой механизм регистрации, который сохраняет имя пользователя и пароль в базе данных MySQL. Как это работает:
[*]Пользователь вводит свои данные в текстовые поля. [*]Значения извлекаются и проверяются с помощью сценария JQuery. [*]Если проверка пройдена, к файлу PHP выполняется вызов Ajax, который затем проверяет, занято ли уже имя пользователя. Если оно занято, оно выдает echo '0'. Если нет, он выполняет echo '1' и вставляет значения в базу данных. [*]
Затем Jquery проверяет ответ и выполняет соответствующее действие.
$.ajax({ тип: "ПОСТ", URL: "register.php", данные: {usn:us, pwd: pw}, кеш: ложь, успех: функция(результат){ console.log(результат); если (результат=='1'){ window.location = "next.php"; }еще{ errorMessage= "Имя пользователя занято.
"; $("#regerrormsg").html(errorMessage); } } }); PHP:
include 'dbconnect.php'; $us = $_POST["usn"]; $pw = $_POST["pwd"]; $tryus = $conn->query("ВЫБЕРИТЕ имя пользователя из пользователей WHERE Username='" . $us . "'"); if ($tryus->num_rows == 0){ эхо '1'; $conn->query("ВСТАВИТЬ В пользователей (ID, Имя пользователя, Пароль) ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ, '" . $us . "', '" . $pw . "')"); сеанс_start(); $_SESSION["пользователь"] = $us; }еще{ эхо '0'; } И вот что странно. Это в значительной степени работает, за исключением одной части. Запрос действительно проверяет, существует ли уже имя пользователя, и отображает соответствующее значение («0» или «1»). Я проверил это, записав вывод в файл javascript. Я также проверил свою базу данных, и она никогда не хранит дубликатов пользователей. Но по какой-то странной причине window.location = "next.php"; никогда не выполняется, даже если значение вывода равно «1». Он всегда переходит в блок «else». Есть идеи, почему это происходит? Спасибо.
Я создаю простой механизм регистрации, который сохраняет имя пользователя и пароль в базе данных MySQL. Как это работает:
[*]Пользователь вводит свои данные в текстовые поля. [*]Значения извлекаются и проверяются с помощью сценария JQuery. [*]Если проверка пройдена, к файлу PHP выполняется вызов Ajax, который затем проверяет, занято ли уже имя пользователя. Если оно занято, оно выдает echo '0'. Если нет, он выполняет echo '1' и вставляет значения в базу данных. [*]
Затем Jquery проверяет ответ и выполняет соответствующее действие.
$.ajax({ тип: "ПОСТ", URL: "register.php", данные: {usn:us, pwd: pw}, кеш: ложь, успех: функция(результат){ console.log(результат); если (результат=='1'){ window.location = "next.php"; }еще{ errorMessage= "Имя пользователя занято.
"; $("#regerrormsg").html(errorMessage); } } }); PHP:
include 'dbconnect.php'; $us = $_POST["usn"]; $pw = $_POST["pwd"]; $tryus = $conn->query("ВЫБЕРИТЕ имя пользователя из пользователей WHERE Username='" . $us . "'"); if ($tryus->num_rows == 0){ эхо '1'; $conn->query("ВСТАВИТЬ В пользователей (ID, Имя пользователя, Пароль) ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ, '" . $us . "', '" . $pw . "')"); сеанс_start(); $_SESSION["пользователь"] = $us; }еще{ эхо '0'; } И вот что странно. Это в значительной степени работает, за исключением одной части. Запрос действительно проверяет, существует ли уже имя пользователя, и отображает соответствующее значение («0» или «1»). Я проверил это, записав вывод в файл javascript. Я также проверил свою базу данных, и она никогда не хранит дубликатов пользователей. Но по какой-то странной причине window.location = "next.php"; никогда не выполняется, даже если значение вывода равно «1». Он всегда переходит в блок «else». Есть идеи, почему это происходит? Спасибо.
Мобильная версия