无法在CodeIgniter中更新会话变量

时间:2017-03-03 15:06:03

标签: codeigniter session-variables

我在使用CodeIgniter 2.2.6会话变量时遇到了麻烦。我有一个视图,其中一些数据由用户输入。然后,用户可以按下提交按钮,此数据将转到Web服务,处理并返回到同一视图(使用控制器及其模型)。

Bellow是视图代码( v_index ),我将数据保存在CodeIgniter会话变量中。

    <?php

    // loads the variables that will be used in print               
    $this->load->library('session');

    $array_items = array(
        'numberVehiclesUsed' => $numberVehiclesUsed,
        'shortestRoute' => $shortestRoute,
        'VRPSolution' => $VRPSolution,
    );

    $this->session->set_userdata($array_items);

    ?>

所以,当我运行下面的代码时,我可以看到所有会话数据,并且一直都是正常的。我的应用程序调用Web服务器,获取返回并每次保存在会话变量中。

    <?php

            echo "<pre>";
            print_r($this->session->all_userdata());
            echo "</pre>";
    ?>

所以,我有另一个屏幕,我想使用会话数据,称为“ Imprimir ”(这意味着打印)。控制器代码如下。 print_r是用于debuging提议,offcourse。

    <?php

    if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class C_imprimir extends CI_Controller
    {
        function __construct() 
        {        
            parent::__construct();

            //load the session library
            $this->load->library('session');

        }   

        public function index() 
        {

            $dados['numberVehiclesUsed'] = $this->session->userdata('numberVehiclesUsed');
            $dados['shortestRoute'] = $this->session->userdata('shortestRoute');
            $dados['VRPSolution'] = $this->session->userdata('VRPSolution');
            echo "<pre>";
            print_r($this->session->all_userdata());
            echo "</pre>";
            $this->load->view('v_imprimir', $dados);
        }
    }

    ?>

当我第一次运行代码时,它会将数据保存在会话变量中,并且我可以在控制器“Imprimir”中加载上面的代码。 print_r显示所有数据都存在且没问题。

问题是,当我使用新数据再次运行第一个视图(v_index)时,会话变量会更新,但控制器“Imprimir”仅加载第一个(和旧的)数据,并且永远不会更新它。

我不知道我做错了什么。其他Stackoverflow关于CodeIgniter会话变量问题的问题对我没有帮助。

有什么建议吗?

0 个答案:

没有答案