@yberpoc

Как избавиться от ошибки переадресации ERR_TOO_MANY_REDIRECTS?

Пытаюсь сделать авторизацию в index.php. Раньше я делал всё в разных файлах. Сейчас пытаюсь сделать по принципу единой точки входа и переношу код в index.php. Раньше авторизация работала нормально, но после того, как я перенёс всё в index.php у меня стала вылазить эта ошибка. Как это исправить?

Файл index.php:
<?php
session_start();
require_once 'core/config/connect.php';
require_once 'core/options/Auth.php';

$db = new Database('localhost', 'test11amadopro', 'yberpoc', 'RG543fdsg');

    $mode = $_GET['method'];
    if(isset($_SESSION['auth'])){
        switch ($mode) {
            case 'show':
                require_once 'core/views/page.php';
        }
    } else {
        $login = htmlspecialchars($_POST['ALogin']);
        $password = htmlspecialchars($_POST['APassword']);

        $auth = new Auth($login, $password, $db);
        $check_user = $auth->auth();
        if($check_user) {
            header('Location: ../?method=show');
        } else {
            header('Location: ../?method=login');
        }
        require_once 'core/views/auth.php';
    }

    unset($_SESSION['message']);


Файл с HTML разметкой auth.php:
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Авторизация</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="wrapper">
    <div class="wrapper__title">
        <h1>Авторизация</h1>
    </div>
    <form class="wrapper__form" action="index.php" method="post">
        <input class="wrapper__input" type="text" name="ALogin" placeholder="Логин">
        <input class="wrapper__input" type="password" name="APassword" placeholder="Пароль">
        <input class="wrapper__button" type="submit" name="login">
        <?if($_SESSION['message']):?>
            <p class="message"> <?=$_SESSION['message']?></p>
        <?endif?>
    </form>
</div>
</body>
</html>


Файл с классом Auth.php:
<?php
class Auth
{
    private $ALogin;
    private $APassword;
    private $dataBase;

    public function __construct($ALogin, $APassword, $dataBase)
    {
        $this->ALogin = $ALogin;
        $this->APassword = $APassword;

        $this->dataBase = $dataBase;
    }

    public function auth()
    {
        $check_user = $this->dataBase->getQuery("SELECT * FROM `auth` WHERE `ALogin` = '$this->ALogin' AND `APassword` = '$this->APassword'");
        if (mysqli_num_rows($check_user) > 0) {
            $user = mysqli_fetch_assoc($check_user);
            $_SESSION['auth'] = ["AId" => $user['AId']];
            return true;
        } else {
            $_SESSION['message'] = 'Вы ввели неверный логин или пароль';
            return false;
        }
    }
}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну конечно, у вас же просто бесконечный header("Location...");

Добавьте после каждого header() вполне закономерный exit(), а после этого разбирайтесь, почему до require(".../auth.php"); дело никогда и не доходит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы