不同浏览器逻辑结果竞然不一样……
本帖最后由 baiyuxiong 于 2010-4-30 18:58 编辑我做一个切换所在城市的功能,通过$this->session->userdata('current_citycode')来保存用户选择的城市。
在FF和chrome下正常。
可是在IE下,刷新页面后,$this->session->userdata('current_citycode')就成FALSE了!
还有一个问题,登录后切换到登录前的页面的功能,我在login控制器里:
//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变化,没想到,不同的浏览器,逻辑也不一样了…… 发现在IE下面,只要刷新一下页面,SESSION就失效了…… 我已经用了KNDB_Session,而且把系统library下的session.php重命名了 我知道为什么了。
奇怪的原因,代码中的一句话;
<LINK rel="shortcut icon" href="#">
就这句话导致SESSION丢失,不知道为什么,可能是IE的bug吧。
我把这句话去掉后session就好了。
页:
[1]