我已经在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');
为什么会发生这种情况的任何想法?
由于
答案 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文件中并且它可以正常工作。