如何使用电子邮件密码条件从数据库中检索记录?

时间:2016-08-14 16:04:39

标签: php database

我想在php中构建一个查询,用户输入他的电子邮件地址和密码,如果电子邮件和密码与数据库匹配,则应从数据库中检索一行。我怎样才能做到这一点?如果任何用户名或密码不正确,则应相应地打印一条消息。

2 个答案:

答案 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()功能将电子邮件与密码进行比较以授予访问权限。