所以我正在创建一个登录表单。验证用户输入以检查电子邮件格式是否正确并且密码是否超过 6 个字符,如果这些是有效的,那么检查登录凭据是否有效并且它们是否与存储的电子邮件/密码匹配users 表。在注册表单中,我使用 sha1 和给定的 salt 对密码进行加密。当我检查密码是否正确时,我会写同样的检查,但即使我输入了正确的登录凭据,似乎也无法验证登录。所以这是我的代码:用户登录功能:
function user_login($email, $password){
global $db;
$salt='%#@#@**#_-!';
$userid = id_from_email($email);
$email = sanitize($email);
$password = sha1($password.$salt);
$query="SELECT UserId FROM users WHERE Email= '".$email."' and UserPass= '".$password."' ";
$result=$db->query($query);
$valid = $result->num_rows;
return ($valid >1) ? $userid : false;
}
这是 login.php 中检查登录是否有效的部分:
else if(empty($errors) == true) {
$userlogin=user_login($email, $password);
if ($userlogin==false){
$errors[]='Wrong email/password combination.';
} else {
//set the user session
session_start();
$_SESSION['UserId']=$userlogin;
header('Location:success.php');
}
不管我是否输入了正确的密码和电子邮件。它总是输出“错误的电子邮件/密码组合”这是我将密码存储在 register.php 数据库中的方式
$salt='%#@#@**#_-!';
$password = sha1($password.$salt);
如果您能帮助我,我将不胜感激。
谢谢你。