用户身份验证 - 错误登录

时间:2014-05-05 16:55:40

标签: php mysql database

我正在尝试从登录表单中验证用户,该表单要求输入用户名和密码。

注册表格运作良好,我将密码包含在数据库中:

$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'";

我找不到错误!求救!

1 个答案:

答案 0 :(得分:0)

首先,不应再将mysql用作数据库连接驱动程序。你应该使用mysqli或pdo。如果你选择留下mysql,你的问题可能是mysql_fetch_array()。您没有指定它返回一个关联数组,因此数组键'pass'将无效。