Codeigniter中的set_userdata生命周期

时间:2016-06-11 14:49:47

标签: php codeigniter session cookies

过去使用纯php进行编码(没有任何框架)时,我设置了一个$_SESSION的会话,当我关闭浏览器会话时,当我设置一个cookie时,它将在到期时间之前可用!

但是在Codeigniter框架中,当我使用$this->session->set_userdata($someData)设置会话并关闭浏览器并再次打开它时会话不可用。

我想创建一个具有Remember Me功能的登录表单,当用户选中Remember Me复选框登录并设置一些cookie时,如果没有选中,则使用简单会话登录(简单会话意味着当用户关闭他/她的浏览器会话被销毁,再次打开浏览器他/她没有登录系统。)

但是在codeigniter框架中,当我尝试使用set_userdata($someData)创建登录表单时,关闭浏览器后会话仍处于活动状态,这是我的问题。

会话和cookie在codeigniter中是否相同?如何在codeigniter中创建具有Remember Me功能的登录系统?

2 个答案:

答案 0 :(得分:1)

您可以在/application/config/config.php文件中检查和更改会话到期时间。有372行,默认值是7200(秒)。

$config['sess_expiration'] = 7200;

答案 1 :(得分:0)

Codeigniter不使用您可以在此处阅读的本机PHP会话:

Session Class

默认情况下,sess_expire_on_close设置为false,因此您需要将其初始化为true,以便在关闭时到期。

关于记住我的政策,这里也是一个很好的阅读:

What is the best way to implement “remember me” for a website?

希望这有帮助