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


session values not passing from one controller to another in code igniter

我已经将会话变量存储在一个控制器中,并在另一个控制器获得该值,但该值未通过

这里有一个控制器

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 
} 

这个的原因是什么

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

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

如果您还没有首先运行control1,那么还不会设置任何会话,您可以看到。

    $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 );

试试这个代码。

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