|
众所周知,CI的session设置不是很理想,作为开发人员对CI如此设置session的目的和初衷很不理解,可以归类为国情吧。
有很多替代CI的session的解决办法,这里,介绍一下我的方式,就是使用PHP自带的session。
方法是:
(1)不在autoload.php中挂在CI的session。位置:system/application/config/autoload.php
(2)在system同级的index.php中顶部,开启PHP自带的缓存.session_start();
(3)在system/application/helper中,自行写入各种session判断的程序,并导引页面及程序的redirect。
(4)在需要用到session的场合中,加入session判断。
(5)清空缓存时,使用session_unset().
这样,PHP自带的session什么样,我们在CI的开发中可以继续使用。减少了很多不必要的麻烦。
当然也可以使用kndb的方式把session写入数据库里,这就看项目本身的情况而言了,与CI和php自带的session实现方式无关了。 |
|