我有一个登录系统,在我的本地主机上运行良好。当我将它上传到我的实时数据库时,我可以创建一个用户,它会将数据输入数据库,但当我尝试登录时,它似乎找不到密码。当我从实时数据库回显值时,它没有给出$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');
}
在这种贬值的情况下,我认为您错误地调用了fetch array。
使用
mysql_fetch_array($result)[0]
或
mysql_fetch_row($result)[0]
按名称引用需要
mysql_fetch_assoc
问题是$username = mysql_real_escape_string($username);
已弃用
我把它改为$username = mysqli_real_escape_string($username);
,它工作得很好