我已经将会话变量存储在一个控制器中,并在另一个控制器获得该值,但该值未通过
这里有一个控制器
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()
来设置会话值?如果是,则应传递会话值。