使用codeigniter会话库丢失一个页面之间的会话变量

时间:2011-10-26 14:48:52

标签: php codeigniter

在我的代码中,我试图在两个页面之间存储一个变量,但我要么得到一个字符串返回“images”或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-我更改了名称以查看是否是问题

1 个答案:

答案 0 :(得分:2)

最后,我解决了这个问题。在SO中使用这个答案:codeigniter setting session variable with a variable not working,我扫描我的js / css是否缺少资源。事实证明,我的thickbox.js引用loadingAnimation.gif in,yes,images文件夹。这就是images来的地方。修复了丢失的文件后,sesion变量文件正常工作。

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