用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4839|回复: 11
收起左侧

[已解决] [重大问题]CI的SESSION类不能在iframe中设置session的值?

[复制链接]
发表于 2011-4-29 10:00:51 | 显示全部楼层 |阅读模式
三个controller A,B,C
A文件内容:<iframe src='B'></iframe>
B文件内容this->session->set_userdata('test','value');
C文件内容:var_dump($this->session->userdata('test'));

运行A文件之后再运行C文件发现返回的值是false
发表于 2011-4-29 11:56:22 | 显示全部楼层
检查一下服务器权限!是部署到服务器上的还是在本地的?也可能是浏览器问题。
发表于 2011-4-29 12:37:36 | 显示全部楼层
CI 的 Session 是 Cookie 实现的,你看看你是不是跨域了。。。
如果有问题,使用我发布的 Session 类库。
 楼主| 发表于 2011-4-29 14:45:20 | 显示全部楼层
session都是cookie实现的吧,除非是url传递session_id,用PHP自带的session函数就没这个问题
发表于 2011-5-17 18:05:41 | 显示全部楼层
回复 Hex 的帖子

怎么才称得上跨域呢?是不是不再同一文件夹?我试了下,不在用以文件夹中设置和读取session会读不到session的值
发表于 2011-5-17 19:36:32 | 显示全部楼层
这个有时候和服务器有很大关系。
发表于 2011-5-17 20:02:17 | 显示全部楼层
回复 jxiang112 的帖子

跨域就是不同域名。
发表于 2011-5-18 09:12:09 | 显示全部楼层
回复 Hex 的帖子

有没有办法解决session跨域的问题呢?
发表于 2011-5-18 12:14:29 | 显示全部楼层
回复 jxiang112 的帖子

Session 本来就不能跨域啊。。
比如你在 CI 中国登陆的用户名等信息,你去百度,他如果能取到你在 CI 中国的信息,那不就世界大乱了吗?
仔细想想,这是必须的安全限制。
发表于 2013-9-1 22:44:31 | 显示全部楼层
那请教Hex大神,如果我真心想让百度拿到CI中国种下的cookie有没有办法,如果CI自愿把这个cookie贡献给百度。(这里只是打个比方~)

本版积分规则