我在我的一个客户的网站上遇到了一个问题,它似乎正在交换两个用户的会话。我使用的笨并具有以下配置: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中检索电子邮件+密码并在数据库中找到匹配的记录,即通常的过程。
任何特殊字符的用户名或通行证?它可以改变MySQL的SELECT结果。 – primetwig
通常在电子邮件地址中找不到下划线和点(。)以外的用户名中没有特殊字符。我不确定密码,因为它在数据库中被加密。我想如果是这样的话,他们将无法登录,因为查询在数据库中找不到任何匹配的记录。 – PoloRM