Быстрая проверка того, что я пытаюсь выяснить. Прежде всего, я хочу извиниться, если я повредил вам глаза своим кодом, я только что начал две недели go с php, и я стараюсь изо всех сил применять logi c: -D
Таким образом, 2-фактор был просто реализован через профиль пользователя, что означает, что если функция все еще не включена, пользователь все еще может успешно войти в систему, после того, как 2-й факт будет включен, он будет перенаправлен для проверки кода. с учетом этого логина. php post необходимо будет проверить следующее:
- Если 2fa c не включен, проверьте учетные данные / пароль ha sh, затем войдите.
- Если 2fa c включен, проверьте, верен ли пароль, затем перенаправьте на 2factcode. php для проверки кода.
- ошибка, если пароль неверен в 1 или 2
'' '
$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');
' ''
- Итак, вот что я пытался настроить (не уверен, имеет ли смысл), если оператор недействителен, что означает, что строки не были найдены, потому что значение is2facenabled равно '1', тогда я все еще проверяю, правильный ли пароль ha sh, затем go, чтобы проверить код 2fa c. *
Если я удалю проверку пароля ниже, она работает, но она никогда не проверяет, правильный ли пароль, если я оставлю его таким, как есть, тогда, если я введу неправильный пароль, страница refre sh без ошибок и вернется, чтобы ввести учетные данные . Я думаю, что у него проблема с $ _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
Мой вопрос: как мне выполнить sh эти проверки и правильно войти в систему, заранее спасибо.
С уважением, MF