我正在尝试做一个登录和注册脚本。我已经完成了大部分工作;但是,在我注册用户后,我无法以该用户身份登录。也就是说,注册用户无法登录。任何帮助将不胜感激!:)
这是与特定问题相关的代码:
$login = login ($username, $password);
if ($login === false) {
$errors [] = 'That username/password combination is incorrect';
} else {
$_SESSION ['user_id'] = $login;
header ('Location: index.php');
exit ();
}
function login ($username, $password) {
$user_id = user_id_from_username ($username);
$username = sanitize ($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = '$username' AND password = '$password'"), 0) == 1) ? $user_id : false;
}
我之前像这样(下)写了上面的查询。以这种方式编写它允许我登录,但“字面上”使用任何密码。
function login ($username, $password){
$user_id = user_id_from_username ($username);
$username = sanitize ($username);
$password = sanitize ($password);
$query1 = mysql_query("SELECT COUNT(user_id) FROM users WHERE username = '$username'");
$query2 = mysql_query("SELECT COUNT(user_id) FROM users WHERE password = '$password'");
return (mysql_result($query1, 0) == 1) ? $user_id : false;
return (mysql_result($query2, 0) == 1) ? $user_id : false;
也就是说,我将查询分为两部分,但注意到密码查询完全无关紧要(即使我“注释掉”了它)。
PS。我知道我应该使用 PDO 或 Mysqli 而不是 mysql 查询,而且 md5 并不那么安全。为了这个谜,请忽略这些事情。