CI的session选择数据库存储,但是也会在cookies里存一份 咋办?
今天做一个东西需要用户长久登录 然后用户要跑的机子又不支持cookies于是选择了session存数据库
然后就发现CI的机制是把session存储到数据库的同时还在cookies里面存一份
而且在读取session的时候是先从$_COOKIE中读取 如果没有数据直接就不跑了
然后我把这块重写掉 想直接从数据库取session然后就发现用户每一次请求都会生成一个全新的session
怎么破啊有人遇到过么
想用session就必须先支持cookie 补充
刚才没仔细看CI_session类现在发现CI哪怕是存数据库 也需要用到cookies来存储一个用户对应的session_id
而我现在是完全不启用cookies就无法获取这个session_id 于是CI认为该用户是第一次请求所以每次都生成一个新的session_id
那这样的话我貌似需要自己写个方法来根据用户的UA和其他一些数据来自己生成这个session_id?
但是我现在还没有想到一个比较好的处理方式啊 用php原版的session吧
session_set_save_handler()这个函数能做
效果一样 config.php 文件中 关于前缀的设置不能去修改,保持原来的空,$config['cookie_prefix'] = ""; 否则每次刷新网页就会产生新的session_id. 检查和域相关的设置,最好保持默认就好。 如果用户不支持cookie的话,用URL传参数呢
页:
[1]