我的登录系统在我的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');
}
答案 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);
并且工作正常