我想在php中构建一个查询,用户输入他的电子邮件地址和密码,如果电子邮件和密码与数据库匹配,则应从数据库中检索一行。我怎样才能做到这一点?如果任何用户名或密码不正确,则应相应地打印一条消息。
答案 0 :(得分:0)
请记住,您绝不应将密码作为纯文本存储在数据库中,请阅读有关密码哈希的信息。
最简单的例子:
function passwordHash($username, $password){
$hash = $password;
for($i = 0; $i < 10000; $i++){
$hash = md5($hash . $username); // we use username as salt
}
return $hash;
}
$username = mysqli_real_escape_string($_POST['username']);
$hash = passwordHash($username, $_POST['password']);
$sql = "SELECT * FROM `users` WHERE username='$username' and password='$hash'";
$query = mysqli_query($sql);
if(mysqli_num_rows($query) != 0){
// successfull login
}else{
// login failed
}
当然,您应该使用相同的哈希函数进行注册表单。我也没有初始化mysql连接。
答案 1 :(得分:-1)
我会在伪代码中使用这个:
if(authentication(email, password)) {
phpQuery();
} else {
alert();
}
authentication()
功能将电子邮件与密码进行比较以授予访问权限。