2010-11-24 136 views
1

我已经在CI中构建了一个站点,并且有一个登录系统,在Firefox中可以正常工作,但不是Chrome或IE。在这两个,如果用户名和密码是正确的,它只是重定向(我想)回到登录页面,而不是登录错误页面,或网站家(应该)。我注意到它似乎没有在Chrome中设置cookie,但它在FF中。CodeIgniter Cookie在FF中工作,但不是Chrome或IE

下面是我的控制器,设置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');  

任何想法,为什么这可能发生?

谢谢

+0

也许这可以帮助:http://stackoverflow.com/questions/917475/creating-a-cookie-failing-with-safari-chrome-ie-but-working-with-ff – trix 2010-11-24 20:56:36

+0

另一种解决方案可能是这个帖子。 http://stackoverflow.com/a/29114118/1226309 – mariofertc 2015-03-18 04:30:43

回答

2

检查是否确实设置了$ _SESSION。在CI上,您可能需要正常退出以清除$ this-session中的whats到“真实”会话变量。

添加一个echo序列化($ _ SESSION),让你知道发生了什么(在redir之前)。

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

1

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

2

我也遇到过这个问题......会话userdata在Chrome和IE中丢失,但在Firefox上没问题。这是由于配置的不正确的设置/ config.php文件

我必须明确地设置cookie_domain 让它在我用这个命令以后AUTOMAGIC ...扯掉CI论坛。

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

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

1

在我的情况下,问题是$config['base_url']是空的。 所以我将它设置为我的域名

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

CI有一些问题,如果饼干指定域是localhost,我给自己定一个真实域名的名称结构的假域到主机文件和它的作品。

相关问题