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

[HELP] session和frame问题,用了frame就收不到session了?

[复制链接]
发表于 2010-4-18 16:43:06 | 显示全部楼层 |阅读模式
本帖最后由 tempa 于 2010-4-18 16:53 编辑

登录后根据session判断一下用哪个视图。
PHP复制代码
 
if(isset($_SESSION["ashell"])){
                        if("" != $_SESSION["ashell"]){
                                $this->load->view('/administrator/vmain');
                        }
                }else{
                        redirect(admin_url()."/adminlogin/");
                }
 
复制代码

有session的话就进入vmain视图,这个视图用了frame
HTML复制代码
 
<frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">
  <frame src="<?php echo admin_url().'/admin_top/';?>" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" title="topFrame" />
  <frameset cols="260,*" frameborder="no" border="0" framespacing="0">
    <frame name=menu src="<?php echo admin_url().'/admin_left/';?>" scrolling=yes>
        <frame name=main src="<?php echo admin_url().'/admin_right/';?>" scrolling=yes>
  </frameset>
</frameset>
<noframes>
</noframes>
 
复制代码

对应载入另三个控制器地址,其中top还是再判断一次session
PHP复制代码
 
if(isset($_SESSION["ashell"])){
                        if("" != $_SESSION["ashell"]){
                                $this->load->view('/administrator/vadmin_top');
                        }
                }else{
                        echo 'no shell';
                }
 
复制代码

但是得到的结果却是no shell,为什么页面间传session就可以,用了frame后就得不到session了?
发表于 2010-4-18 16:49:37 | 显示全部楼层
两者不是同一个session
$_SESSION["shell"]
$_SESSION["ashell"]

也许第二个确实是空值
 楼主| 发表于 2010-4-18 16:53:15 | 显示全部楼层
本帖最后由 tempa 于 2010-4-18 16:54 编辑

我手误了,都是一样的ashell,里面的判断语句写的是一样的,就是不明白,第一次判断到了session进入视图,再判断为什么就不认了?
发表于 2010-4-18 16:58:35 | 显示全部楼层
那不应该的。呵呵,你再仔细检查下代码吧
 楼主| 发表于 2010-4-18 17:58:46 | 显示全部楼层
上网搜了一下,好像说是什么session丢失问题,用表单提交没什么,页面间或链接有时会出现。
然后我问个基础问题,CI的session_start(); 是在文件中么,还是要手动写呢?
发表于 2010-4-18 18:05:56 | 显示全部楼层
你最好使用CI的session,用hex修改的session类库
 楼主| 发表于 2010-4-18 18:08:50 | 显示全部楼层
本帖最后由 tempa 于 2010-4-18 18:18 编辑

类库下载了,我想先用php写,然后再改成类库的,但是没想到就出问题了。

仔细检查了一下,果然是少包含了一个session_start();的页面,太马虎了。
发表于 2010-11-1 16:58:11 | 显示全部楼层
学习了 我也在搞这个

本版积分规则