快速检查一下我想找出的那个。首先,如果我用我的代码伤了你的眼睛,我想道歉,我是两周前才开始使用php,我正在尽我最大的努力运用逻辑:-D
因此仅通过用户配置文件实施了2因素,这意味着如果仍未启用该功能,则用户仍可以成功登录,在启用2事实之后,将重定向他以验证代码。这样说,login.php帖子将需要检查以下内容:
'''
$email=mysqli_real_escape_string($db,$_POST['email']);{
$password=mysqli_real_escape_string($db,$_POST['password']);
$stmt = $db->prepare("SELECT password FROM users WHERE email = ? AND isEmailConfirmed='1' AND is2facEnabled='0'");
$stmt->bind_param("s", $_POST['email']);
$stmt->execute();
$stmt->bind_result($hash);
//checking hash
if ($stmt->fetch() && password_verify($_POST['password'], $hash)) {
$_SESSION['email'] = $email;
header('location: prod.php');
'''
如果我删除下面的密码检查,那么它将起作用,但是它永远不会检查密码是否正确,如果我将密码保留为原来的样子,那么如果我输入了错误的密码,页面将刷新而不会出现错误,并返回输入凭据。我认为$ _POST有问题,但不确定。
elseif (!$stmt->fetch() && password_verify($_POST['password'], $hash)) {
header('location: login2factorverification.php');
}else {
array_push($errors, "Incorrect credentials or email needs verification");
enter code here
我的问题是,我如何完成这些检查并正确登录,请先谢谢您。
关于,MF
这基本上等于我认为编程的第一条规则:分解问题。
而不是尝试编写一段检查用户的存在,密码和2fac状态的代码,而是一次执行一个: