我在我最近的一个网站上使用Codeigniter 2.1,当访问量超过3g时,cookie就会变得腐败......
当做一些调试到最初读取cookie的时候,我可以看到它显然被截断了,这是一个例子:
a:14:{
应该是
a:14:{s:10:"session_id";s:32:"ef171f95db26ad51986.......
只有在连接到移动网络的设备上读取cookie时才会发生这种情况,到目前为止我只能测试三个,令我惊讶的是,有一个工作:
我猜测它的网络基础,并且标题在整个过程中的某个地方被破坏了。 (可能是代理?)
这整周都在找我,所以任何信息都会很棒。
编辑:要注意,该网站有相当多的cookie,但规模不大。我们有Google Analytics,Sharethis,Uservoice和Facebook。
答案 0 :(得分:4)
虽然我不知道是什么原因造成这种情况,但我有一些想法可以帮助您找到可以帮助您解决问题的问题。 我首先要做的是尝试使错误保持一致,尝试使用上面的例子中的一个提供者。
a:14:{
a:14:{}
吗?a:1
?a:14:xxx:{xxxx}
?我们正在寻找一种可能一直在削减字符串的模式。希望这些故障排除步骤有所帮助。
答案 1 :(得分:0)
你有吗
$config['sess_match_ip'] = TRUE;
如果是这样 - 这不适用于手机设备,因为许多电信公司每秒钟在手机上循环IP地址(不 - 我不知道为什么) - 所以它会杀死你的会话
或者 - 您是否尝试过切换
$config['sess_encrypt_cookie'] = true;
更改此功能也可以解决您的问题
答案 2 :(得分:0)
尝试在没有ci会话类的情况下设置一些测试cookie,看看它是否也会损坏。如果没有那么它就是一个ci bug。我有一个类似的问题,Codeigniter无法序列化使用'\'转义的数据。还要确保在保存后记录cookie的大小。也许它超过了4096.