Как проверить зарегистрированного пользователя и перенаправить на определенную страницу в codeigniter? - PullRequest
0 голосов
/ 07 июля 2019

Я создал библиотеку для проверки вошедшего в систему пользователя. но браузер выдает ошибку

localhost перенаправлял вас слишком много раз.

Вот моя пользовательская библиотека

Библиотека

class Handler
{

    public function is_logged_in()
    {
        $ci = &get_instance();
        $ci->load->library('session');
        $ci->load->helper('url');
        if ($ci->session->userdata('logged_in')) {
            redirect('/');
        } else {
            redirect('/login');
        }
    }
}

Контроллер

class Auth extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->model('auth_model');
        $this->handler->is_logged_in();
    }
}

Помогите мне выяснить ошибку.

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Если вы проверяете Auth на каждой странице (как правило, это то, что вам следует делать), это создаст циклы даже с другим опубликованным ответом.

С вашей логикой, каждый раз, когда я посещаю страницу только для участников, я буду перенаправляться на домашнюю страницу. Вы получаете то, что я пытаюсь передать?

Вы должны перенаправлять только не авторизованных пользователей. Зарегистрировавшиеся пользователи могут продолжить запрос и должны быть доставлены просмотр.

if (!$ci->session->userdata('logged_in')) {
            redirect('/login');
        }
1 голос
/ 07 июля 2019
if ($ci->session->userdata('logged_in') && '/' !== $_SERVER['REQUEST_URI']) {
    redirect('/');
} else {
    redirect('/login');
}

или

if (!$ci->session->userdata('logged_in')) {
    redirect('/login');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...