我正在尝试从登录表单中验证用户,该表单要求输入用户名和密码。
注册表格运作良好,我将密码包含在数据库中:
$user_pass = mysql_real_escape_string($_POST['user_pass']);
$user_pass = sha1($security_pass.$user_pass);
然后,我正在检查用户和密码(检查后它们是否为空):
$user_name = mysql_real_escape_string($_POST['user_name']);
$user_pass = mysql_real_escape_string($_POST['user_pass']);
$user_pass = sha1($security_pass.$user_pass);
$query = "SELECT user, pass FROM users WHERE user='".$user_name."'";
$sql = mysql_query($query);
$result = mysql_fetch_array($sql);
if ($result['pass']!=$user_pass){
echo "Incorrect login";
echo $sql;
echo $result;
}else{
$row = mysql_fetch_array($sql);
$_SESSION["user_name"] = $row['user'];
echo "Correct login!";
}
但它总是返回“登录不正确”,“资源ID#3”和“数组”。
我也尝试过这样的部分:
$query = "SELECT user, pass FROM users WHERE user='$user_name'";
我找不到错误!求救!
答案 0 :(得分:0)
首先,不应再将mysql用作数据库连接驱动程序。你应该使用mysqli或pdo。如果你选择留下mysql,你的问题可能是mysql_fetch_array()。您没有指定它返回一个关联数组,因此数组键'pass'将无效。