我试图使用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。
有人能看到这段代码的任何明显问题吗?一双新鲜的眼睛将非常感激。
注意:这个简单的函数不是安全的,因此不安全的查询格式。
答案 0 :(得分:0)
我建议将以下内容更改为字符串并运行PHP脚本。如果字符串出现在您的数据库中,则可以排除它是否由PHP脚本引起,在这种情况下它将是html和ajax元素。
//$user = $_POST['username'];
//$pass = $_POST['password'];
$user = 'userTest';
$pass = 'userPass';