CodeIgniter扩展用户';s会话到期时间
是否可以在CI中延长用户的会话过期时间。我想做的是,默认情况下,每个用户的会话cookie持续一天,但每次用户访问站点时,其会话到期时间都会再延长一天CodeIgniter扩展用户';s会话到期时间,codeigniter,session,cookies,Codeigniter,Session,Cookies,是否可以在CI中延长用户的会话过期时间。我想做的是,默认情况下,每个用户的会话cookie持续一天,但每次用户访问站点时,其会话到期时间都会再延长一天 我不知道这样做是否是一个好主意,也许我应该将cookies的生存时间设置为一周,就这样?您是在谈论CodeIgniter中的会话组件吗?您可以转到config.php并设置$sess\u expiration=7200(默认值为7200) 来自: $sess\u expiration:希望会话持续的秒数。默认值为2小时(7200秒)。如果希望使用
我不知道这样做是否是一个好主意,也许我应该将cookies的生存时间设置为一周,就这样?您是在谈论CodeIgniter中的会话组件吗?您可以转到config.php并设置
$sess\u expiration=7200代码>(默认值为7200)
来自:
$sess\u expiration:希望会话持续的秒数。默认值为2小时(7200秒)。如果希望使用非过期会话,请将该值设置为零:0
希望这就是你想要做的?我相信你想要的实际上是默认的行为。
看看/system/libraries/Session.php中的sess_read()和sess_update()
// 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);
}
活动会话的最后一个活动每五分钟更新一次
使用上次活动+sess\u expiration
因此,对于您想要的行为,只需将您的sess_过期时间设置为86400(一天),您就可以完成所有设置。codeigniter中的默认会话时间为
$sess_expiration = 7200; // This is 2 hours
您还可以设置$sess\u expiration=0代码>这意味着您正在设置永久会话
实际上我可以在codeigniter library 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);
}
您可以使用以下选项:
$this->config->set_item('sess_expiration', $sec);
$this->session->sess_destroy();
$this->session = new CI_Session();
// where $sec is the seconds until expiration
我对$sess_expiration的理解只是告诉我们会话cookie自创建以来的生存时间,在本例中为2小时,我想要实现的是,如果用户处于活动状态,他的会话cookie理论上不会过期。我希望这能更清楚地说明…您应该在config.php文件中设置它,而不是在实际的库文件中。升级codeigniter core时,您将丢失更改。作为记录,我的意思是查看系统文件,以了解codeigniter的会话如何与原始问题相关,而不是在那里进行任何更改,但我可以看出这可能是不清楚的。