需要一个关于php代码点火器中的会话随时过期的解决方案


Need a solutions regarding session expire at any time in php codeigniter

我使用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;