我无法使用 codeigniter 在数据库中存储会话。
当用户登录时,会创建一个会话并将其存储在数据库中。数据被填充到数据库中。当用户使用注销按钮时,会话数据被清空,但是会话仍然存在于数据库中。
问题是当用户不使用注销按钮而只是关闭网络浏览器时。会话数据未清空,但用户仍处于注销状态。(我已经在我的配置文件中设置了这个)会话应该在数据库中被销毁,但事实并非如此!
当用户在单击“注销”按钮后重新登录时,用户第一次登录时创建的会话将再次填充数据。所以这没有问题。
但是当用户在关闭浏览器后重新登录时,它会创建一个新会话。
这个问题最终导致会话无休止,每次用户关闭浏览器时都会创建会话。
其他让我感到困惑的事情:当我使用帐户登录时,会创建一个会话。然后,当我使用该帐户注销并使用另一个帐户登录时,会话将存储在与另一个帐户相同的记录中。会话表中的新记录何时创建?
我正在使用 2.1.3 版的 codeigniter。
我究竟做错了什么?
//Session config:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$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;