Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 3.0-dev随机丢弃会话_Php_Codeigniter_Session_Config_Cart - Fatal编程技术网

Php codeigniter 3.0-dev随机丢弃会话

Php codeigniter 3.0-dev随机丢弃会话,php,codeigniter,session,config,cart,Php,Codeigniter,Session,Config,Cart,这是我继承的一个项目,上面写着:define('CI_VERSION','3.0-dev');在CodeIgniter.php中。这是一个电子商务网站,每隔一段时间,客户就会抱怨他们被注销,购物车内容被随机清空。这似乎在同一天对同一位客户反复发生,但对其他任何人都不会。同一客户可能在几天后从同一台机器和浏览器重试,但根本没有问题。昨天有一位客户对此提出了投诉,我在ci_sessions表中找到了他们IP地址的7个不同会话。因为我自己永远无法重现这个问题,所以我很难弄明白。我在网上读了很多关于CI

这是我继承的一个项目,上面写着:define('CI_VERSION','3.0-dev');在CodeIgniter.php中。这是一个电子商务网站,每隔一段时间,客户就会抱怨他们被注销,购物车内容被随机清空。这似乎在同一天对同一位客户反复发生,但对其他任何人都不会。同一客户可能在几天后从同一台机器和浏览器重试,但根本没有问题。昨天有一位客户对此提出了投诉,我在ci_sessions表中找到了他们IP地址的7个不同会话。因为我自己永远无法重现这个问题,所以我很难弄明白。我在网上读了很多关于CI删除会话的帖子,我对发现的配置值进行了所有建议的更新,希望它能被修复,但几周后又有另一位客户抱怨同样的事情。如果您以前遇到过这个问题,您可以建议其他解决方案吗

以下是我的一些配置设置:

$config['sess_cookie_name']     = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' . ENVIRONMENT : '');
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = true;
$config['sess_encrypt_cookie']  = true;
$config['sess_use_database']    = true;
// don't change anything but the 'ci_sessions' part of this. The MSM depends on the 'default_' prefix
$config['sess_table_name']      = 'default_ci_sessions';
$config['sess_match_ip']        = true;
$config['sess_match_useragent'] = true;
$config['sess_time_to_update']  = 300;

$config['cookie_prefix']    = (substr_count($_SERVER['SERVER_NAME'], '.') > 1) ? substr($_SERVER['SERVER_NAME'], 0, strpos($_SERVER['SERVER_NAME'], '.')) . '_' : 'default_';
$config['cookie_domain']    = ($_SERVER['SERVER_NAME'] == 'localhost') ? '' : $_SERVER['SERVER_NAME'];
$config['cookie_path']      = BASE_URI;
$config['cookie_secure']    = false;

$config['global_xss_filtering'] = false;
昨天有一位客户对此提出了投诉,我在ci_sessions表中找到了他们IP地址的7个不同会话

这似乎是瓶颈,因为为用户创建了新会话;还将导致取消设置购物车(我猜购物车是基于重新生成/销毁和创建的
$\u会话

因为我自己永远无法重现这个问题,所以我很难弄明白

客户端可能正在使用私人浏览。尝试清除浏览器(系统)中的所有Cookie以复制它。相关帖子也可能对您有所帮助:


尽管如此,这两条线还是有一些模糊的感觉。为什么不将
sess\u expiration
增加到
$config['sess\u expiration']=60*60*24
sess\u expire\u on\u关闭
$config['sess\u expirement']=false

请尝试设置
$config['sess\u match\u ip']=“FALSE”

谢谢,但这些设置似乎没有帮助,偶尔还会发生这种情况。您检查了日志吗?你实现了上面的代码吗?另外,如果可能的话,试着礼貌地询问客户的会话体验(他的系统设置、浏览器设置等)。是的,我试过那个代码,这就是我所说的“那个些设置”,代码设置了一些设置。哪些日志?阿帕奇?PHP?我在几周前更改了它,但昨天又发生了。这些设置可能是原因:$config['sess\u match\u ip']=true$config['sess\u match\u useragent']=true;CI会话将检查用户代理和用户的当前IP是否都与会话中的IP匹配,如果是,则在满足其他设置标准的情况下,它将假定是同一个人,否则,它将取消旧会话(注销用户)并创建一个新会话,因为该用户将被视为新用户。这两个设置都已设置为false好几个星期了,问题昨天再次出现。@EricKittell您使用的是哪个会话驱动程序?文件还是数据库?检查配置文件中的$config['sess\u driver']以确认。我没有$config['sess\u driver'],建议的任何配置设置更改看起来都没有帮助,我想知道这是否与主机有关