Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter不断创建新的会话ID,最终销毁所有用户数据_Php_Mysql_Codeigniter_Session - Fatal编程技术网

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?