session和frame问题,用了frame就收不到session了?
本帖最后由 tempa 于 2010-4-18 16:53 编辑登录后根据session判断一下用哪个视图。
if(isset($_SESSION["ashell"])){
if("" != $_SESSION["ashell"]){
$this->load->view('/administrator/vmain');
}
}else{
redirect(admin_url()."/adminlogin/");
}
有session的话就进入vmain视图,这个视图用了frame
<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
if(isset($_SESSION["ashell"])){
if("" != $_SESSION["ashell"]){
$this->load->view('/administrator/vadmin_top');
}
}else{
echo 'no shell';
}
但是得到的结果却是no shell,为什么页面间传session就可以,用了frame后就得不到session了? 两者不是同一个session
$_SESSION["shell"]
$_SESSION["ashell"]
也许第二个确实是空值 本帖最后由 tempa 于 2010-4-18 16:54 编辑
我手误了,都是一样的ashell,里面的判断语句写的是一样的,就是不明白,第一次判断到了session进入视图,再判断为什么就不认了? 那不应该的。呵呵,你再仔细检查下代码吧 上网搜了一下,好像说是什么session丢失问题,用表单提交没什么,页面间或链接有时会出现。
然后我问个基础问题,CI的session_start(); 是在文件中么,还是要手动写呢? 你最好使用CI的session,用hex修改的session类库 本帖最后由 tempa 于 2010-4-18 18:18 编辑
类库下载了,我想先用php写,然后再改成类库的,但是没想到就出问题了。
仔细检查了一下,果然是少包含了一个session_start();的页面,太马虎了。:Q 学习了 我也在搞这个:curse:
页:
[1]