xhui_cool 发表于 2009-2-6 12:37:29

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

本帖最后由 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,第一次重定向会失效。。。


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'
);

Hex 发表于 2009-2-6 18:22:52

firefox 还有这个 BUG?

lovinglgz 发表于 2009-2-8 23:03:33

我也遇到这个问题

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

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

真是奇怪!!!

xhui_cool 发表于 2009-2-9 10:33:37

firefox 还有这个 BUG?
Hex 发表于 2009-2-6 18:22 http://codeigniter.org.cn/forums/images/common/back.gif

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

xhui_cool 发表于 2009-2-9 10:34:50

我也遇到这个问题

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

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

真是奇怪!!!
lovinglgz 发表于 2009-2-8 23:03 http://codeigniter.org.cn/forums/images/common/back.gif

不会是缓存的关系吧

trynews 发表于 2009-2-16 21:43:59

换个KNDB_Session用用,这个好像没有你说的问题,可以试试:lol
页: [1]
查看完整版本: session 丢失[ 又出问题了。。。]