Как сделать переход на другую страницу при правильном введении пароля и логина на PHP?
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$credentials = file('credentials.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$username_input = $_POST['username'];
$password_input = $_POST['password'];
$username_valid = false;
$password_valid = false;
foreach ($credentials as $line) {
list($key, $value) = explode(':', $line);
if ($key == 'username' && trim($value) == $username_input) {
$username_valid = true;
}
if ($key == 'password' && password_verify($password_input, trim($value))) {
$password_valid = true;
}
}
if ($username_valid && $password_valid) {
header('Location: dvach2.html');
exit();
} else {
header('Location: dvach.html');
exit();
}
?>
У меня есть такой код, он читает пароли вида username:name passsword:password и подсоединён к сайту,
Пользователь вводит логин и пароль, условные 123 и 123, нажимается на кнопка и происходит быстрая перезагрузка самого сайта, т.е. он переносит на страницу т.к. не находит логин и пароль верными. Запускаю через XAMPP локальный сервер.
Ответы (1 шт):
Автор решения: Doctor Tinker
→ Ссылка
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$credentials = file(__DIR__ . '/credentials.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$username_input = $_POST['username'];
$password_input = $_POST['password'];
$username_valid = false;
$password_valid = false;
foreach ($credentials as $line) {
list($key, $value) = explode(':', $line);
if ($key == 'username' && trim($value) == $username_input) {
$username_valid = true;
}
if ($key == 'password' && trim($value) == $password_input) {
$password_valid = true;
}
}
if ($username_valid && $password_valid) {
header('Location: dvach2.html');
exit();
} else {
header('Location: dvach.html');
exit();
}
Я решил свою проблему, проблема заключалась в том что когда я пытался авторизоваться он переносил меня обратно на эту же страницу авторизации, я переписал код подобным образом и теперь оно работает.