我使用PHP代码点火器。但有一个关于会话的问题。即使我在localhost中打开单个项目,会话也会随时过期。它似乎没有在固定的时间到期。有时会话会在5分钟内过期,有时会工作很长时间。
有人能告诉我可能是什么原因吗?以及什么是解决方案。有时,当我对代码进行一些更改时,会话也会过期。
config.php文件中使用以下配置:
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['cookie_prefix'] = "";
$config['cookie_domain'] = "";
$config['cookie_path'] = "/";
$config['cookie_secure'] = FALSE;
$config['global_xss_filtering'] = FALSE;
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['time_reference'] = 'local';
对于CodeIgniter 2,您错过了一个名为sess_expiration
的配置。您可以将其添加到$config['sess_expire_on_close'] = TRUE;
下
$config['sess_expiration'] = 7200;
它将保持会话2小时。但为此,请确保sess_expire_on_close
设置为FALSE
$config['sess_expire_on_close'] = FALSE;
所以最后的配置是
$config['sess_expire_on_close'] = FALSE;
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;