Тайм-аут сеанса Codeigniter - PullRequest
1 голос
/ 03 апреля 2012

Я не новичок в CodeIgniter, но я тоже не профессионал ... все еще привыкаю к ​​этому, наверное. Мне любопытно посмотреть, есть ли у кого-нибудь идеи о том, как отобразить сообщение о том, что время сеанса истекло, когда библиотека сеансов убивает неактивный сеанс.

Я попытался расширить библиотеку Session.php и добавить:

// Is the session current?
    if (($session['last_activity'] + $this->sess_expiration) < $this->now)
    {
        $this->sess_destroy();
        $this->set_flashdata('timeout_message', "Session Timed Out."); // <--added
        return FALSE;
    }

Но я думаю, что когда FALSE возвращается, и мой контроллер перенаправляет на страницу, на которой будет отображаться флэш-сообщение ... данные флэш-памяти стираются.

Есть идеи?

1 Ответ

0 голосов
/ 03 апреля 2012

Я думаю, вам стоит пойти немного по-другому.Предполагая, что у вас есть какой-то главный контроллер, от которого все остальное наследуется, чтобы запустить некоторые основные принципы, вы можете добавить к этому версию метода, который вам нужен.Каждый раз, когда пользователь запрашивает новую страницу, вы просто запускаете проверку выше.Если это не удается, вы можете уничтожить текущий сеанс (или запустить метод выхода из системы, если он у вас есть), запустить новый, установить сообщение flashdata и перенаправить обратно на домашнюю страницу или куда угодно.Это, конечно, начнет новый сеанс, но, конечно, это нормально, если пользователь вышел из системы и все ценные данные сеанса были потеряны?

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