我在一个客户的网站上遇到了一个问题,似乎两个用户的会话正在交换。我正在使用 CodeIgniter 并具有以下配置:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
昨天我遇到了一个问题,其中一位用户在每个页面上都重新生成了他的会话。我增加了会话表中 User-Agent 数据库字段的大小,并将上面的 match_ip 切换为 TRUE,作为额外的预防措施。
今天,似乎有两个用户正在登录,他们每个人的标题中都有“欢迎 X”消息作为另一个人的名字。不幸的是,我只从我的客户那里获得这些信息,所以我无法在我的机器上调试或复制它,因为会话似乎对我来说工作正常(本地和在线)。
有没有人对我如何进一步调试、了解我的情况或问题可能有什么建议或见解?我尝试添加:
$this->session->sess_destroy();
$this->session->sess_create();
关于用户登录,但我不确定这是否是问题所在。
当然,我还仔细检查了我的实际登录代码没有任何问题......但是,它只是从 POST 中检索电子邮件+密码并在数据库中找到匹配的记录,这是通常的过程。