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

session 丢失[ 又出问题了。。。]

[复制链接]
发表于 2009-2-6 12:37:29 | 显示全部楼层 |阅读模式
本帖最后由 xhui_cool 于 2009-2-9 10:21 编辑

一个登陆界面,输入name,password,点击登陆进入admin_controller,
验证成功,然后设置 $_SESSION['user'] = $user_name 再重定向到主页面admin/home,
问题发生了,session丢失,在hook函数中检查 session为空,  又定向到登陆界面,再次登陆,登陆成功。。。

只有第一次登陆是这样,一旦登陆后退出登陆 重新登陆,一次成功,why?

哎,redirect 函数用的是header 定位location,firefox下有这个bug,第一次重定向会失效。。。


PHP复制代码
class Validate {
    function validate_user(){
        $uri =& load_class('URI');
        $type = $uri->segment(1);
        $param = $uri->segment(2);
 
        if($type == "admin" && !empty($param)){
            if(!isset($_SESSION['user'])){
                $CI = & get_instance();
                $CI->load->helper('url');
                redirect('/admin');
            }
        }
    }
}
 
$hook['post_controller_constructor'] = array(
                                'class'    => 'Validate',
                                'function' => 'validate_user',
                                'filename' => 'validate.php',
                                'filepath' => 'hooks'
);
 
复制代码
发表于 2009-2-6 18:22:52 | 显示全部楼层
firefox 还有这个 BUG?
发表于 2009-2-8 23:03:33 | 显示全部楼层
我也遇到这个问题

我在做用户登出的时候,清楚掉session和永久登录cookie

但是页面还显示有session 刷新下页面就好了

真是奇怪!!!
 楼主| 发表于 2009-2-9 10:33:37 | 显示全部楼层
firefox 还有这个 BUG?
Hex 发表于 2009-2-6 18:22


那天没仔细看,ie下是正常的, 就没管这个问题
今天突然发现 我对代码做了一些修改后(只是业务逻辑上的),firefox下正常了,ie下却需要提交两次,
1。为何不同浏览器产生不同效果?
2。为何只有第一次登陆才需要登陆两次?而后退出登陆再登,输入一次用户名密码就可以(已确认session清空,访问其他页面都会重定向到登陆页面)
 楼主| 发表于 2009-2-9 10:34:50 | 显示全部楼层
我也遇到这个问题

我在做用户登出的时候,清楚掉session和永久登录cookie

但是页面还显示有session 刷新下页面就好了

真是奇怪!!!
lovinglgz 发表于 2009-2-8 23:03


不会是缓存的关系吧
发表于 2009-2-16 21:43:59 | 显示全部楼层
换个KNDB_Session用用,这个好像没有你说的问题,可以试试

本版积分规则