Php Codeigniter不断创建新的会话ID,最终销毁所有用户数据
这是我最初的配置:Php Codeigniter不断创建新的会话ID,最终销毁所有用户数据,php,mysql,codeigniter,session,Php,Mysql,Codeigniter,Session,这是我最初的配置: $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 0; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] =
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$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;
由于未知的原因,我的网站在一段未知的时间[比如几分钟]后(通过创建新会话id并在mysql中插入新行)不断清除用户数据,我决定可能是因为CI试图匹配useragent,但是这样做没有成功,因此它将创建一个新会话,并有效地清除所有用户数据,然后重新开始(但我不明白的是,我使用的是同一个浏览器chrome,如果这确实是问题所在,那么chrome会不断更改其useragent头或其他内容,或者CI有错误…)
不管怎样,现在我把它改成:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 300;
我希望这能解决问题。。。
如果不是,是什么导致问题?检查数据库中的“用户代理”字段是否足够长。@YellowBird问题是,这不重要吗?因为当我发出新请求时,userdata仍然存在。因此,显示CI仍然可以匹配用户\u代理。。。如果问题是数据库中字段的长度,则每个服务器请求CI都会插入一个新行。但事实并非如此。还是我弄错了?如果有什么用处的话,那就是:varchar(120)。但我相信CI会自动将其截断为120?