我使用 CodeIgniter (v3.1.11) 作为我的 web 应用程序和文件作为 session_driver。
会话库是这样自动加载和配置的
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 21600;
$config['sess_use_database'] = false;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = false;
$config['sess_time_to_update'] = 300;
$config['sess_save_path'] = APPPATH . "cache/sessions/";
Run Code Online (Sandbox Code Playgroud)
当我登录时,我在会话对象中设置了我的用户信息并使用$this->session->set_userdata($myData)
它创建了相应的会话文件,其中包含我需要的信息
user@:~/path/to/application/cache/sessions$ sudo cat ci_sessionb69ca97bce23674e94809941346fae7300c4afaa
username|s:9:"user";id|i:2;logged_in|b:1;language|s:2:"EN";
Run Code Online (Sandbox Code Playgroud)
但是当我的前端请求 CodeIgniter 控制器时,会为每个包含空数据的请求创建一个新的会话文件,我最终无法检索存储在初始会话文件中的数据。
user@:~/path/to/application/cache/sessions$ sudo cat ci_sessiondcdd28185aa2f7c9a4f83841193e8c826399abc5
__ci_last_regenerate|i:1603286120;
Run Code Online (Sandbox Code Playgroud)
什么可能使这种情况发生?
小智 0
设置$config['sess_time_to_update'] = 0;
或$config['sess_time_to_update'] = $config['sess_expiration'];
此选项控制会话类重新生成自身并创建新会话 ID 的频率。将其设置为 0 将禁用会话 ID 重新生成。
归档时间: |
|
查看次数: |
118 次 |
最近记录: |