我不知道我的问题出在哪里...我正在尝试使用 ajax、jquery 和 PHP 做一个简单的登录表单...问题是 $result 总是返回 false。
我真的很新,希望大家能帮助我。
PHP 代码:
<?php
if(isset($_POST['user_name']) && isset($_POST['password']))
{
$user_name=mysql_real_escape_string($_POST['user_name']);
$password=$_POST['password'];
$sql = "SELECT * FROM users WHERE
userName = '$user_name' AND password = '$password'";
$result = mysql_query($sql);
if($result === true)
echo $user_name;
else
echo 'Error';
}
?>
它本身的形式:
<!DOCTYPE html>
<html>
<head>
<script src="jquery-2.1.1.js"></script>
<link rel="stylesheet" type="text/css" href="sign_in.css">
</head>
<body>
<div id="sign_in_wrapper">
<textarea id="user_name"></textarea>
<textarea id="password"></textarea>
<button id="sign_in_button">Sign In!</button>
</div>
<div id="error"></div>
<script>
$('#sign_in_button').click(function () {
var user_name = $('textarea#user_name').val();
var password = $('textarea#password').val();
signIn(user_name,password);
});
function signIn(user_name, password)
{
$.ajax({
type: "POST",
url: "sign_in.php",
data: "user_name="+user_name+"&password="+password,
success: function(result)
{
if(result = 'Error')
document.getElementById("error").innerHTML ='user name and password are not match';
else
document.getElementById("sign_in_wrapper").innerHTML ='Welcome back '+result;
}
})}
</script>
</body>
</html>
我更改了我的 php 代码:
<?php
if(isset($_POST['user_name']) && isset($_POST['password']))
{
$user_name=mysql_real_escape_string($_POST['user_name']);
$password=$_POST['password'];
$sql = "SELECT * FROM users WHERE
userName = '$user_name' AND password = '$password'";
$result = mysql_query($sql);
$result_rows = mysql_num_rows($result); // <-- this is the way to check the result
if($result_rows)
// OK
echo $user_name;
else
// Bad login
echo 'Error';
}
?>
现在我遇到了另一个错误: “警告:mysql_num_rows() 期望参数 1 为资源, bool 值在第 10 行 C:\wamp\www\Project\sign_in.php 中给出”
第 10 行是:$result_rows = mysql_num_rows($result);
感谢大家的快速解答!
最佳答案
这是因为:
$result = mysql_query($sql);
将始终返回 true(如果 SQL 查询正常,则在您的情况下为 Resource#)。不需要有这样的行来检查用户名/密码。
你必须:
$result = mysql_query($sql);
$result_rows = mysql_num_rows($result); // <-- this is the way to check the result
if($result_rows)
// OK
echo $user_name;
else
// Bad login
echo 'Error';
关于php - 使用 php 和 ajax 的登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141836/