Как получить время ожидания сеанса в CodeIgniter? - PullRequest
4 голосов
/ 20 марта 2011

Я пытаюсь запустить функцию за 5 минут до истечения времени ожидания сеанса.Время моего сеанса установлено в 7200 в моем конфигурационном файле.Возможно ли это сделать с помощью CodeIgniter?

Ответы [ 2 ]

10 голосов
/ 20 марта 2011

Я думаю, вы ищете что-то вроде этого:

$lastActivity = $this->session->userdata('last_activity');

$timeOut = time() - 7200 + 300; // now minus the the session 
                                   // timeout plus 5 minutes

if ($lastActivity <= $timeOut)
{
    /* This runs on or after the "5 minutes before mark", but won't run if the
       session has expired. After the session times out, based on the 
       $config['sess_expiration'] var, it's destroyed, as pointed out by
       coolgeek. */

    // ... Do some stuff
}

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

2 голосов
/ 20 марта 2011

Время сеанса истекает, если в течение периода ожидания нет запросов (просмотров страниц). Таким образом, решение php не решит проблему.

Вам необходимо установить на своей странице таймер javascript, который будет отсчитывать время с момента запроса страницы, и предпринимать какие-то действия после достижения порогового значения (тайм-аут - 5 минут).

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