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

[已解决] 不同浏览器逻辑结果竞然不一样……

[复制链接]
发表于 2010-3-18 11:35:05 | 显示全部楼层 |阅读模式
本帖最后由 baiyuxiong 于 2010-4-30 18:58 编辑

我做一个切换所在城市的功能,通过$this->session->userdata('current_citycode')来保存用户选择的城市。
在FF和chrome下正常。
可是在IE下,刷新页面后,$this->session->userdata('current_citycode')就成FALSE了!


还有一个问题,登录后切换到登录前的页面的功能,我在login控制器里:
PHP复制代码
 
//controller user
 
 
function login()
{
 
if (FALSE == $this->session->userdata('history_page'))
 
{
 
$this->session->set_userdata('history_page', $_SERVER['HTTP_REFERER']);;
 
}
//表单验证部分
$this->load->helper('form');
 
 
//...
//跳转部分
if ($this->access_library->is_logged_in())
 
{
 
$this->Members_model->LastLoggedIn();
 
 
if ($this->session->userdata('history_page')) {
 
 
echo "<script language='javascript'>";
 
echo "location='".$this->session->userdata('history_page')."';";
 
echo "</script>";
 
$this->session->unset_userdata('history_page');
 
}
 
else
 
{
 
redirect('','refresh');
 
}
 
}
 
 
}
 
 
复制代码

第一次进入login函数时,没有问题,但是当提交表单交给login验证的时候,就提示
A PHP Error was encountered
Severity: Notice
Message: Undefined index: HTTP_REFERER
Filename: controllers/user.php
Line Number: 16



这是什么原因啊!我只知道浏览器会引起UI变化,没想到,不同的浏览器,逻辑也不一样了……
 楼主| 发表于 2010-3-18 11:37:56 | 显示全部楼层
发现在IE下面,只要刷新一下页面,SESSION就失效了……
 楼主| 发表于 2010-3-18 11:42:53 | 显示全部楼层
我已经用了KNDB_Session,而且把系统library下的session.php重命名了
 楼主| 发表于 2010-3-18 13:29:56 | 显示全部楼层
我知道为什么了。
奇怪的原因,代码中的一句话;
<LINK rel="shortcut icon" href="#">
就这句话导致SESSION丢失,不知道为什么,可能是IE的bug吧。
我把这句话去掉后session就好了。

本版积分规则