CodeIgniter Cookies在FF中工作,但不是Chrome或IE

时间:2010-11-24 16:06:09

标签: php authentication codeigniter

我已经在CI中构建了一个站点,并且拥有一个登录系统,该系统在Firefox中运行良好但在Chrome或IE中运行良好。在这两者中,如果用户名和密码是正确的,它只是重定向(我认为)回到登录页面,而不是重定向到登录错误页面,或重定向到站点主页(应该如此)。我注意到它似乎没有在Chrome中设置cookie,但它确实在FF中。

以下是我的控制器中的代码,用于设置cookie并在身份验证后重定向:

            $newdata = array(
                   'username'  => $_POST['login_username'],
                   'real_name' => $name,
                   'user_id' => $uid,
                   'logged_in' => TRUE
               );

            $this->session->set_userdata($newdata);
            //echo $newdata;
                redirect('/site/index');    

为什么会发生这种情况的任何想法?

由于

6 个答案:

答案 0 :(得分:2)

检查$ _SESSION是否确实已设置。在CI上你可能需要优雅地退出以清除$ this-session中的'真实'会话变量。

添加一个echo serialize($ _ SESSION),这样你就知道了什么(在redir之前)。

并检查如何正常结束Ci请求。

答案 1 :(得分:2)

我也遇到了这个问题...会话用户数据因Chrome和IE而丢失,但在Firefox上没问题。这是由于config / config.php

中的设置不正确

我必须明确设置cookie_domain 为了使它在未来变得自动化,我使用了这个命令......扯掉CI论坛。

$config['cookie_domain'] = str_replace("http:/","",str_replace("https://","", $config['base_url']));

我添加了这一行,一切正常。

答案 2 :(得分:1)

对我来说它解决了只是为cookie增加了更多的时间,我有3600所以我改为7200.似乎是生产网站上的时间问题。可以帮助别人。

答案 3 :(得分:1)

调整cookie名称可以解决CI配置中的问题,以删除下划线工作奇迹。文章CodeIgniter Session Problem in IE很好地解释了细节。

答案 4 :(得分:1)

就我而言,问题是$config['base_url']为空。 所以我把它设置到我的域

$config['base_url'] = 'http://yourdomain.com/';

答案 5 :(得分:0)

如果Cookie的指定域是localhost,CodeIgniter会出现问题,我已经将具有真实域名结构的假域设置到hosts文件中并且它可以正常工作。