CodeIgniter продлевает время истечения сеанса пользователя - PullRequest
11 голосов
/ 09 апреля 2010

Можно ли продлить срок действия сеанса пользователя в КИ. Что я хочу сделать, так это то, что по умолчанию каждый сеансовый cookie-файл длится, например, 1 день, но каждый раз, когда пользователь посещает сайт, его срок действия сеанса увеличивается еще на один день.

Я не знаю, если это хорошая идея, может быть, мне стоит просто установить время жизни файлов cookie примерно на неделю, и все?

Ответы [ 6 ]

11 голосов
/ 09 апреля 2010

Я верю, что вы хотите, это поведение по умолчанию. Посмотрите sess_read () и sess_update () в /system/libraries/Session.php

last_activity для активного сеанса обновляется каждые пять минут.

Срок действия сеанса проверяется с помощью last_activity + sess_expiration <сейчас </p>

Итак, для поведения, которое вы хотите, просто установите время sess_expiration на 86400 (один день), и у вас все будет готово.

5 голосов
/ 09 апреля 2010

Из руководства пользователя :

$ sess_expiration : количество секунд, которое вы хотите, чтобы сеанс длился. Значение по умолчанию составляет 2 часа (7200 секунд). Если вы хотите, чтобы сеанс не истекал, установите значение в ноль: 0

Надеюсь, это то, что вы хотите сделать?

2 голосов
/ 09 апреля 2010

Вы говорите о компоненте Session в CodeIgniter? Вы можете перейти к config.php и установить $sess_expiration = 7200; (7200 по умолчанию)

http://codeigniter.com/user_guide/libraries/sessions.html

1 голос
/ 22 мая 2016

код от Crash - это работа для меня

$this->config->set_item('sess_expiration', $sec);
$this->session->sess_destroy();
$this->session = new CI_Session();
// where $sec is the seconds until expiration

... https://stackoverflow.com/a/31281131/5299541

1 голос
/ 29 апреля 2013

Время сеанса по умолчанию в codeigniter равно

$sess_expiration = 7200; // This is 2 hours

Также вы можете установить $sess_expiration = 0; Это означает, что вы устанавливаете сеанс навсегда.

На самом деле я мог видеть в библиотеке codeigniter Session.php

// Set the session length. If the session expiration is
// set to zero we'll set the expiration two years from now.
if ($this->sess_expiration == 0)
{
     $this->sess_expiration = (60*60*24*365*2);
}
0 голосов
/ 08 июля 2015

Вы можете использовать это:

$this->config->set_item('sess_expiration', $sec);
$this->session->sess_destroy();
$this->session = new CI_Session();
// where $sec is the seconds until expiration
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...