Ajax продолжает возвращать неверный вывод из PHP - PullRequest
0 голосов
/ 14 июня 2019

этот код продолжает возвращать 0, даже если введенные мной имя пользователя и пароль верны. Я также попробовал php коды без ajax, но он отлично работает.

PHP

include('config/connection.php');

if(isset($_POST['login'])){
    $username = mysqli_real_escape_string($conn,$_POST['username']);
    $password = mysqli_real_escape_string($conn,$_POST['password']);

    $select_query = mysqli_query($conn,"SELECT * FROM tbl_users WHERE username='$username' AND password ='$password'");
    $count_rows = mysqli_num_rows($select_query);

    if($count_rows > 0){
        echo "1";
    } else {
        echo "0";
    }
}

AJAX

    $('form').on('submit', function (e) {

      e.preventDefault();

      $.ajax({
        type: 'post',
        url: 'phpscripts/function/fnc_login.php',
        data: $('form').serialize(),
        success: function (result) {
            //if fnc_login.php returned 1/true
            //redirect to index page
            if (result == 1) {                 
                window.location = "index.php";

            //if fnc_login.php returned 0/false
            } else {
                $('#message').html('User not found!').fadeIn('slow');
            }
        }
      });
    });
    return false;

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

В вашей функции успеха Ajax, предупредите результат следующим образом:

alert('-' + result + '-');

Это будет указывать фактические и полные данные ответа, полученные от сервера.Вероятно, ваш ответ содержит символ новой строки или текст, который приводит к тому, что jquery неправильно понимает тип данных ответа.

Если тип данных выглядит неправильно, вы можете передать явный тип данных следующим образом:

$.ajax({
    type: 'post',
    url: 'phpscripts/function/fnc_login.php',
    dataType: 'text',
    data: $('form').serialize(),

Наконец, когда вы знаете, как выглядит ответ и знаете, что он на 100% правильный, сравните его в виде строки, например:

if (result == "1") { }
0 голосов
/ 14 июня 2019

вы проверяете целочисленное значение в ответе, а не в строке

if (result == "1") { }

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...