CI框架session失效的问题  

一历史项目升级,出现巨坑。在服务器上运行正常,下载本地搭建后CI框架出现异常session失效,具体表现为session本身可写可读跨页失效,具体表现为每次执行都会生成新的session_id。

初步判断是数据库写session的问题,测试换成文件故障依旧,部署memcached切换均无法解决。

项目前后台都用的同一套CI,后台故障的同时前台却没问题,最奇葩的是前台访问一旦有session_id,后台也好用了,但没有session后台也用不了。

不是没有怀疑过cookie,搞笑的是测试时读写均有内容,于是就开始跟小伙伴满网各种找,SF上甚至有人说自己重装了mac都不行,顺道吐槽一下度娘现在就是个玩偶,除了XXX就是呵呵呵,喵了个咪的。

 

长话短说,直接上最终发现的问题原因–CI的cookie读写有自己的一套逻辑,跟php的原生cookie有区别,感兴趣可以瞅瞅System/libraries/Session.php。本项目故障现象如此复杂是因为前台用的原生cookie,后台用的CI cookie,还有最奇葩的原因–Mamp,

Mac下Mamp 的php.ini 中 output_buffering 设置默认Off,直接修改php.ini还不行,需要用Mamp配置修改,步骤如下:

  1. Start MAMP PRO
  2. Select File -> Edit Template -> PHP4 php.ini / PHP5 php.ini
  3. Search this line “output_buffering = Off”
  4. Change “Off” to “On” or to a maximum number of bytes instead (for example “4096”)
  5. Save the file
  6. Start Servers

综上,所有的坑都是因为CI+Mac+Mamp+前后台调用不一致碰到一起,缘–真的妙不可言!

 

欢迎大佬支持本博客的发展 -- Donate --

本文链接:CI框架session失效的问题

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 没有评论

  1. 没有通告