Ajax不断从PHP返回错误的输出

时间:2019-06-14 12:38:55

标签: php ajax

即使我输入的用户名和密码正确,此代码也始终返回0。我也确实尝试了没有ajax的php代码,但是效果很好。

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 :(得分:-2)

在ajax成功函数中,如下警告结果:

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

这将指示从服务器收到的实际和完整的响应数据。您的响应可能包含换行符或某些文本,这些文本可能导致jquery误解了响应数据类型。

如果数据类型显示错误,则可以这样传递一个显式数据类型:

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

最后,一旦您知道响应的模样并且知道它是100%正确的,就可以将其作为字符串进行比较,如下所示:

if (result == "1") { }

答案 1 :(得分:-3)

您检查响应中的整数值而不是字符串

transpose

希望它可以解决您的问题。