Страница не работает - ERR_TOO_MANY_REDIRECTS - PullRequest
0 голосов
/ 30 мая 2019

Когда этот код реализован в codeigniter (этот тип ошибки показывает => localhost перенаправляет вас слишком много раз.)

1) application / config / config.php

    $config['enable_hooks'] = TRUE;

2) application / config / hooks.php

    $hook['post_controller_constructor'][] = array(
        'function' => 'checkAdminLogin',
        'filename' => 'authenticate_login.php',
        'filepath' => 'hooks',
    );

3) application / hooks / authenticate_login.php (создать новый файл php (authenticate_login.php))

    function checkAdminLogin() {
        $CI = & get_instance();
        if (!getSession('is_logged_in')) {
            redirect('admin/login');
        } else
            return true;
    }

    function getSession($key) {
        $CI = & get_instance();
        return $CI->session->userdata(trim($key));
    }

1 Ответ

1 голос
/ 30 мая 2019

Когда ваш посетитель заходит в admin / login, ваш код обнаружит, что он не вошел в систему, и перенаправит его снова в admin / login .... и снова, и снова ...

Вы должны определить маршрут страницы входа и не перенаправлять с него.

Что-то вроде:

function checkAdminLogin() {
    $CI = & get_instance();
    if (!getSession('is_logged_in'))
    {
        if ($_SERVER['REQUEST_URI']!='/admin/login') {
            redirect('admin/login');
        }else{
            // User is on login page, don't redirect him again
        }
    } else
        return true;
}

Но я не уверен, что означает возвращение истины в вашем случае. В основном у вас есть 3 случая здесь:

  1. Зарегистрировался
  2. Не авторизован, но на странице авторизации
  3. Не залогинен и не зарегестрирован

Так что вы должны думать обо всех этих 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...