【问题标题】:Losing a session variable between one page with codeigniter session library使用 codeigniter 会话库在一个页面之间丢失会话变量
【发布时间】:2011-12-15 19:24:07
【问题描述】:

在我的代码中,我试图在两页之间存储一个变量,但我要么得到一个返回“图像”或 0 的字符串……要么什么都没有 - 尝试投射它..在一页上回显有效并显示正确的数字,但一旦您单击视图进入下一页-它丢失了-我尝试在数据库中打开 cs_sessions 并且没有任何区别

<?php   
 public function carconfirm($car_id = '')
        {

            if(empty($car_id))
            {
                redirect('welcome');
            }

            $this->load->model('mcars');
            $car = $this->mcars->getCar($car_id);

            $data['car'] = $car->row_array();


            $car_id = (int) $car_id;
            $this->session->set_userdata('flappy', $car_id);
            echo $car_id;



            //insert details 
            //display details

            $this->load->view('phps/carconfirm',$data);
        }

        function confirm()
        {

            //get vars

            $time_slot = $this->session->userdata('slot');
            $person_id = $this->session->userdata('person_id');
            $car_id = $this->session->userdata('flappy');

            $insert_array = array(  'slot'=> $time_slot ,
                                    'car'=> $car_id,
                                    'person_id'=> $person_id
                                );
            print_r($insert_array);

            $this->load->model('mbooking');
            $result = $this->mbooking->addbooking($insert_array);

            if($result)
            {
                redirect('welcome/options');
            }

        }
?>

我丢失的变量是 flappy-我更改了名称以查看是否是问题

【问题讨论】:

  • 这是唯一缺少的吗?如果您尝试在 carconfirm() 中设置另一个并在 confirm() 中检索它(就像您正在使用这个一样),您会得到相同的行为吗?
  • 可能是个愚蠢的问题,但是您在使用之前加载了会话类吗?
  • 是的,我只丢了一个。我把它扔了..我最终在两个页面之间使用了一个隐藏的帖子变量
  • 我对有关会话丢失数据的另一个问题的回答可能会有所帮助:stackoverflow.com/questions/8018897/phps-framework-codeigniter/…
  • @TSquared :我也有这个问题。有什么解决办法吗?

标签: php codeigniter


【解决方案1】:

最后,我解决了这个问题。在 SO 中也使用这个答案:codeigniter setting session variable with a variable not working,我扫描我的 js/css 以查找丢失的资源。原来,我的thickbox.js 指的是在images 文件夹中的loadingAnimation.gif。这就是images 的来源。修复丢失的文件后,会话变量工作正常。

不确定,为什么 CI 替换(可能)最后添加的会话变量使用这个,但可能是因为 CI 没有使用 $_SESSION 全局变量。 CMIIW。我用这篇文章作为提示:http://outraider.com/frameworks/why-your-session-variables-fail-in-codeigniter-how-to-fix-them/

【讨论】:

  • 在我的情况下,外部 CSS 导入中的错误路径名破坏了会话。好吧,那是 3 小时,我不会回来了..
猜你喜欢
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 2023-03-30
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
相关资源
最近更新 更多