使用PHP和AJAX请求进行简单的MySQL登录

时间:2017-03-03 19:41:52

标签: php jquery mysql ajax

我试图使用PHP创建一个非常简单的MySQL登录功能。用户名和密码通过AJAX发布在PHP上。 AJAX功能是:

function login(){

var user = document.getElementById("username").value;
var pass = document.getElementById("password").value;

    $.ajax({

        url : "login.php",
        type : "POST",
        data : {
            username : user,
            password : pass
        },
        success : function(response){
            alert(response);
        },
        error : function(response){
            alert(response);
        }
    });
}

登录脚本:

$conn = new mysqli($host, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
//echo "Connected successfully";
$user = $_POST['username'];
$pass = $_POST['password'];


$query="SELECT * FROM Users WHERE email = '$user' AND password ='$pass' LIMIT 1";

$result = $conn->query($query);
$count = $result->num_rows;
if($count == 1){
     echo "success";
}else{
    echo "incorrect login details";
}

$conn->close();
?>

即使用户名和密码正确,$ count也始终为零。我已经验证了用PHP成功检索到的用户名和密码。

更简单的查询,SELECT * FROM Users也返回0。

尝试echo或var_dump $ result会导致显示对象Object。

有人能看到这段代码的任何明显问题吗?一双新鲜的眼睛将非常感激。

注意:这个简单的函数不是安全的,因此不安全的查询格式。

1 个答案:

答案 0 :(得分:0)

我建议将以下内容更改为字符串并运行PHP脚本。如果字符串出现在您的数据库中,则可以排除它是否由PHP脚本引起,在这种情况下它将是html和ajax元素。

//$user = $_POST['username'];
//$pass = $_POST['password'];

$user = 'userTest';
$pass = 'userPass';