spt119 发表于 2010-6-5 13:36:24

关于在CI中使用session的个人解决办法

众所周知,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实现方式无关了。

Hex 发表于 2010-6-8 13:38:59

也可以使用我发布的 Session 类库。

kunwsk 发表于 2010-6-8 15:07:52

本帖最后由 kunwsk 于 2010-6-8 15:09 编辑

虽然sessionid 用的是 cookie来保存。但是我认为他们的最大区别是session在服务器端保存。 cookie全部都保存在客户端。 不要公用一个名字,用该区分一下,不然感觉混淆了。 以后大家都认为他们是一个东西了。cookie就用cookie,session就用session

shenma 发表于 2011-10-28 14:05:29

不错!

小棚栽 发表于 2011-11-4 11:13:11

两个都行

五点晨曦 发表于 2011-11-6 03:04:30

本帖最后由 五点晨曦 于 2011-11-6 04:47 编辑

用数据库保存session其实也不错啊,不一定非要全部写进客户端cookies

我发帖不看时间了……10年6月的时候是啥版本来着?现在2.0版改进很多了吧

yeseason 发表于 2011-11-27 16:31:35

顶啊 支持
页: [1]
查看完整版本: 关于在CI中使用session的个人解决办法