Php 代码点火器中未从一个控制器传递到另一个控制器的会话值
我已将会话变量存储在一个控制器中,并在另一个控制器中获取该值,但该值未传递 这里有一个控制器Php 代码点火器中未从一个控制器传递到另一个控制器的会话值,php,codeigniter,Php,Codeigniter,我已将会话变量存储在一个控制器中,并在另一个控制器中获取该值,但该值未传递 这里有一个控制器 function control1 { $this->session->set_userdata(array( 'value1' => $this->input->post('value1'), 'value2' => $this->input->post('v
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,那么还不会设置任何会话,您会看到。您应该检查会话是否已在第二个控制器中设置为如下所示:
function control2 {
if (!isset ($this->session->userdata('value1'))){
redirect('control1');
} else {
echo $this->session->userdata('value1'); //it returns empty value
}
$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 );
如果您还没有首先运行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()
来设置会话值?如果是这样,则应传递sessions值。如何进入control2()
?我的意思是,在转到control2()
之前,您是否先调用control1()
来设置会话值?如果是这样,则应传递sessions值。在codeigniter for common function中,您需要在扩展类中使用此值,或者用作帮助程序或库,无法将区域值从一个控制器传递到另一个控制器。在codeigniter for common function中,您需要在扩展类中使用此值,或者用作帮助程序或库可以将区域值从一个控制器传递到另一个控制器。