PHP登录适用于localhost并在实时站点上添加用户,但不会检索密码

时间:2014-03-25 00:53:11

标签: php mysql

我的登录系统在我的localhost上工作正常。当我将它上传到我的实时数据库时,我可以创建一个用户,它会将数据输入到数据库中,但是当我尝试登录时,它似乎找不到密码。当我回显来自实时数据库的值时,它不为$realpass['password'];

提供任何内容

$username = mysql_real_escape_string($username);

$conn = mysql_connect($_SESSION['db_name'], $_SESSION['db_username'], $_SESSION['db_password'] );
mysql_select_db($_SESSION['db_table'], $conn);

//Get Password
$query = "SELECT `password` FROM `user` WHERE email_address='$username';";
$result = mysql_query($query);
$realpass = mysql_fetch_array($result);

if(sha1($password)!=$realpass['password'])
{
    echo "Error! Invalid username or password, please try again.<br/>";
    echo sha1($password)."<br/>";
    echo $realpass['password'];
}
else
{
    $_SESSION['uname'] = $name;
    $_SESSION['valid_user'] = $username;
    $_SESSION['user_id'] = $user_id;
    header('Location: index.php');
}

2 个答案:

答案 0 :(得分:0)

在这种折旧的情况下,我认为你正在错误地调用fetch数组。

使用

mysql_fetch_array($result)[0]

mysql_fetch_row($result)[0]

要按姓名引用,您需要

mysql_fetch_assoc

答案 1 :(得分:0)

问题是$username = mysql_real_escape_string($username);deprecated

我将其更改为$username = mysqli_real_escape_string($username);并且工作正常