Ajax仍然获取数据

时间:2015-02-27 17:56:52

标签: php jquery ajax

我一直试图找到导致我的代码仍然获取数据的原因,即使查询是错误的。它是使用ajax的简单登录表单。

这是我的代码:

$(function() {
  $("#submit_login").click(function() {
    var username = $("input#username").val();
    if (username == "") {
       $('#error').html('Please Insert Your Email Address');    
       return false;
    }
    var password = $("input#password").val();
    if (password == "") {
       $('#error').html('Please Insert Your Password'); 
       return false;
    }
    var dataString = 'username='+ username + '&password=' + password;
    $.ajax({
      type: "POST",
      url: 'login.php',
      data: dataString,
      dataType: "html",
      beforeSend: function(){ $("#submit_login").val('Connecting...');},
      success: function(data) {
      if (data == 0) {
      $('#error').html('Wrong Login Data')
      $("#submit_login").val('Sign in!');
        } else {
            $('#error').html('<b style="color:green;">you are logged. wait for redirection</b>');   
            document.location.href = 'private.php'; 
        }
      }
     });
    return false;
    });
});

的login.php

<?php
session_start();
include("config2.php");
if(isset($_POST['username']) && isset($_POST['password']))
{
// username and password sent from Form
$username=mysqli_real_escape_string($db,$_POST['username']); 
$password=md5(mysqli_real_escape_string($db,$_POST['password'])); 
$results = $mysqli->query("SELECT id FROM users WHERE username='$username' and password='$password'");
$obj = $results->fetch_object();
if ($results)
{
$_SESSION['username'] = $obj->id;
        echo $username;
}


}

?>

问题是,每次尝试登录时,它都会将我重定向到private.php,即使用户名和密码也不正确。这意味着即使查询返回为false或0,login.php仍会获取数据。

我很难找到造成这种情况的原因,希望你们能帮助我!欢呼声。

1 个答案:

答案 0 :(得分:-1)

如果login.php中的条件可能为false。应该是这样吗?变量$ results总是返回1,因为你持有查询而不是结果本身。而不是$ result,改为$ obj。

if ($obj)
{
    $_SESSION['username'] = $obj->id;
    echo $username; 
}