0

我正在存储一个不同的会话,例如 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));
    }

     .... 
4

3 回答 3

0

我有一个类似的问题,一个会话变量返回“默认”,另一个返回一个 css 文件的名称。

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

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

于 2014-03-17T19:47:49.703 回答
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>';
于 2014-03-17T19:53:28.320 回答
0

查看所有会话设置,使用以下代码执行此操作并检查您的要求会话。

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

或者

print_r($this->session->all_userdata());
于 2013-06-10T04:51:25.190 回答