即使浏览器关闭,CodeIgniter如何保持会话数据?

时间:2011-07-15 10:10:01

标签: php session codeigniter cookies

我想知道会话在CodeIgniter中是如何工作的。当浏览器关闭时,会话是否被假设为自动被破坏?默认情况下,CodeIgniter不会在浏览器关闭时销毁会话:

$config['sess_expire_on_close'] = FALSE;

相反,我们可以设置会话过期时间:

$config['sess_expiration']      = 7200;

现在,例如,如果我将过期时间设置为0,只要我不自行销毁就会保持会话:

$this->session->sess_destroy();

那么CodeIgniter如何在特定时间内保存会话信息,即使在浏览器关闭后也是如此?

此外,如果使用此默认设置(不会使浏览器关闭会话到期)以保持用户登录几天,是否安全? (例如,在会话中存储'logged_in' => TRUE

1 个答案:

答案 0 :(得分:3)

CodeIgniter中的会话不使用默认的PHP $_SESSION。它使用自己的cookie实现。这就是为什么当你关闭浏览器时它不会被破坏的原因。您还可以在CodeIgniter中使用带有数据库的会话,并使用选项$config['sess_use_database'] = TRUE;以及其他内容:http://codeigniter.com/user_guide/libraries/sessions.html