会话值不在代码点火器中从一个控制器传递到另一个控制器

时间:2016-05-09 06:38:30

标签: php codeigniter

我已将会话变量存储在一个控制器中并在另一个控制器中获取该值但该值未传递

这是一个控制器

function control1 {
$this->session->set_userdata(array(
        'value1'                =>  $this->input->post('value1'),
        'value2'                =>  $this->input->post('value2'),
);

  echo $this->session->userdata('value1'); //it returns value 

}
function control2 {

echo $this->session->userdata('value1'); //it returns empty value 
} 

这可能是什么原因

3 个答案:

答案 0 :(得分:0)

您应该检查会话是否已在第二个控制器中设置,如下所示:

    function control2 {
     if (!isset ($this->session->userdata('value1'))){
         redirect('control1');
     } else {
       echo $this->session->userdata('value1'); //it returns empty value 
    } 

如果你还没有先通过control1,那么你就看不到任何会话了。

答案 1 :(得分:0)

    $this->session->set_userdata( 'values', array(
            'value1'                =>  $this->input->post('value1'),
            'value2'                =>  $this->input->post('value2'),
    ) );
    $a = $this->session->userdata('values'); //it returns value
    print_r( $a );

试试这段代码。

答案 2 :(得分:0)

你如何进入control2()?我的意思是,在转到control1()之前,您是否先调用control2()来设置会话值?如果是,则应传递会话值。