Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器中未从一个控制器传递到另一个控制器的会话值_Php_Codeigniter - Fatal编程技术网

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中,您需要在扩展类中使用此值,或者用作帮助程序或库可以将区域值从一个控制器传递到另一个控制器。