是否可以在CI中扩展用户的会话到期时间。我想要做的是,默认情况下,每个用户的会话cookie持续例如1天,但每次用户访问该站点时,他的会话到期时间会延长一天。
我不知道这样做是不是一个好主意,也许我应该将Cookie的生命时间设置为一周,就是这样?
答案 0 :(得分:10)
我相信你想要的实际上是默认行为。 看看/system/libraries/Session.php中的sess_read()和sess_update()
活动会话的last_activity每五分钟更新一次。
使用last_activity + sess_expiration<来检查会话到期时间现在
因此,对于您想要的行为,只需将您的sess_expiration时间设置为86400(一天),您应该全部设置。
答案 1 :(得分:5)
答案 2 :(得分:2)
您是在谈论CodeIgniter中的Session组件吗?您可以转到config.php并设置$sess_expiration = 7200;
(默认为7200)
答案 3 :(得分:1)
Crash的代码对我有用
$this->config->set_item('sess_expiration', $sec);
$this->session->sess_destroy();
$this->session = new CI_Session();
// where $sec is the seconds until expiration
答案 4 :(得分:0)
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);
}
答案 5 :(得分:0)
您可以使用:
$this->config->set_item('sess_expiration', $sec);
$this->session->sess_destroy();
$this->session = new CI_Session();
// where $sec is the seconds until expiration