Php:检查用户登录是否与电子邮件匹配

时间:2017-04-28 01:34:14

标签: php email

让我解释一下,我正在建立一个忘记密码系统。

我的目标是这样:如果用户丢失了密码,他可以通过提供登录信息和电子邮件然后接收包含随机密码的电子邮件来恢复密码。

所以,他可以使用这个新的登录并将其更改为他的个人资料页面中的新个人:我已经更改了密码系统并且它可以正常工作。

问题是,我想确保电子邮件与用户登录相匹配,否则任何人都可以随机发送电子邮件,因此注册用户可以重置当前密码...

那么如何做,以验证我们在表单中添加的电子邮件:$ _POST [' mail']通过检查他的登录信息来匹配数据库中用户的电子邮件?

我知道我们可以使用 password_verify 来为密码做到这一点:

// Getting the user login

$sql = "SELECT login, password FROM users WHERE login = :login";
$result = $dbh->prepare($sql);
$result->execute(['login' => $_POST['username']]);
$row = $result->fetchObject();


// Checking the password

if($result->rowCount() == 1 && password_verify($_POST['password'], $row->password)) {/* */}

是否有 email_verify 执行同样的操作?

1 个答案:

答案 0 :(得分:0)

电子邮件不像密码那样散列,所以您只需要进行简单的字符串比较。

您可以使用strcasecmp

有关详细信息,请参阅此处:http://php.net/manual/en/function.strcasecmp.php

相关问题