Codeigniter会话奇怪的行为

时间:2013-06-10 03:22:43

标签: php javascript html css phpmyadmin

我正在存储一个不同的会话,比如id,type,isloggedin和最后comp_city,其中我将城市名称存储到comp_city会话..

例如我将'旧金山'存储到会话comp_city并且它成功了,现在我重定向到另一个页面并且我想使用comp_city的值,但奇怪的是它不是让'旧金山'作为我给它的价值我'img'。会出现什么问题?是因为我使用了太多会话吗?

public function index($city='', $error=null)
{       
    if($city == '')
    {
        $city = 'San Francisco';
        $this->session->set_userdata(array('compcity' => $city));
    }else if($city)
    {
        $city = urldecode($city);
        $this->session->set_userdata(array('compcity' => $city));
    }

     .... 

3 个答案:

答案 0 :(得分:0)

查看所有会话的设置,使用以下代码并检查您的require会话。

 print_r($this->session->userdata); 

print_r($this->session->all_userdata());

答案 1 :(得分:0)

我遇到了类似的问题,一个会话变量返回“default”,另一个返回了一个css文件的名称。

我找不到确切的原因,但这解决了我的问题:

缺少css文件(在“默认”文件夹中)。我修复了css文件的引用,会话问题就消失了。

答案 2 :(得分:0)

尝试以这种方式设置数据:

从右

echo '<pre>'.print_r($this->session->all_userdata(), true).'</pre>';
$this->session->set_userdata('more_data', array('compcity' => $city));
echo '<pre>'.print_r($this->session->all_userdata(), true).'</pre>';

我非常肯定你完全用你使用它的方式覆盖整个会话。

<强>错

echo '<pre>'.print_r($this->session->all_userdata(), true).'</pre>';
$this->session->set_userdata(array('compcity' => $city));
echo '<pre>'.print_r($this->session->all_userdata(), true).'</pre>';