sess_expiration问题求教
使用CI_session(目前不用数据库)sess_expiration在config设置好像是有效的,在程序中设定,能返回设置的值,但是不会有实际效果,你们是不是有什么经验,介绍一下?config里:$config['sess_expiration']= 10;
程序里设置:
$this->session->sess_expiration=100;
echo $this->session->sess_expiration; 显示出来是100
但是session 10秒后就失效了。
如何动态设置这个有效期呢?
想用来实现保存登录状态期限(1周,一个月,永久)
在线等。。。 本帖最后由 zycbob 于 2010-4-13 22:05 编辑
那是用cookie实现的 但是ci_session实质就是cookie啊? 本帖最后由 zycbob 于 2010-4-13 22:20 编辑
没有,session是session , cookie是cookie,
只不过ci的session是依赖cookie保存session_id的
你要做的就是
在用户登录验证通过时, 比如将用户名和随机字符串的加密值 写到用户的cookie里,并根据情况设置过期时间
然后在session中保存需要的标记
每次页面初始化的时候先判断session,如果没有则从cookie中读取数据并解密,取得用户名,与数据库中的数据对比,然后重新设置session,
如果cookie过期,则没有登陆 本来想只用CI_SESSION,这样省得麻烦,但是CI_SESSION好像不能动态设置过期时间的,CI_SESSION在浏览器cookie可以看到,其实也是cookie啊。。
不管如何,还是感谢你的快速响应,呵呵 用钩子是可以在session启动前改变过期时间设置的
其实,SESSION是保存在服务器的,就算你给SESSION动态设置过期时间,现在你不存在数据库中,如果服务器重启,用户登陆状态就没了
页:
[1]