ci中使用session保存在数据库中为什么看不到
$newdata = array(
'uid' => '123456',
);
$this->session->set_userdata($newdata);
sessions表已经定义了uid字段,执行以上操作后sessions表插入了一条含session_id的新记录,但是uid字段值不是“123456”,而是默认值。
但是执行$this->session->userdata('uid');可以得到“123456”,是否CI使用数据库保存session时只保存session_id,ip_address,user_agent,last_activity四项?用户自定义的数据都保存到cookie中?那使用数据库保存session信息有何意义?十分感谢! ci 本身的 session 确实是放在 cookie 中的,至于是不是都放数据库中,我不太清楚,照你说的,可能是那样吧。
不过,我从来不会使用 CI 自带的 Session,呵呵~~~
推荐使用第三方类库,比如 KNDB Session 是否感谢Hex,没有使用过KNDB Session,有使用帮助文档或者官方地址吗?
之前我一直使用MC存储session,不知道能否集成到CI来? 我把http://codeigniter.com/wiki/KNDB_Session/当中的CI_Session类拷贝到了libraries中后,页面报错
Warning: CI_Exceptions::include(application/errors/error_php.php) : failed to open stream: No such file or directory in E:\website\www\system\libraries\Exceptions.php on line 161
请问使用KNDB_Session,需要设置php.ini吗?
session.save_path = "c:/tmp"
session.save_handler = files
在c:/tmp中发现了session保存的文本文件,session不是保存到数据库中了吗?在数据库中没有session记录
为什么呢?请求帮助 KNDB 是PHP本地 Session,也可用于 DB,你需要配置一下,你看看他的说明啊。 $config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
配置文件是定义使用数据库的呀,为什么数据库里面没有记录呢?奇怪 我的是PHP5,完全拷贝http://codeigniter.com/wiki/KNDB_Session/中的CI_Session类
不知道报Warning是为什么 楼主可以考虑用 DB_Session 或者 OB_Session 搞定!
使用http://codeigniter.com/wiki/DB_Session/
我自己在sessions表自定义了一个字段uid用于存储用户的UID号,方便做在前用户列表。
session_data存储其他信息,如username、nickname等
$sessions = array
(
'uid'=> '123',
'username' => 'hnmazda'
);
$this->db_session->set_userdata($sessions);
var_dump($this->db_session->userdata('uid'));
var_dump($this->db_session->userdata('username'));
uid和username是分开存储的,再次感谢Hex的指导,发现CI越来越好玩了,继续关注...... 我用的DB_Session,用户Cookies只保留sessionID
页:
[1]
2