CodeIgniter:刷新后会话数据消失

时间:2018-01-31 10:20:32

标签: php codeigniter session

像我在标题中说的那样。我在CodeIgniter(版本3.1.6和3.1.7)中遇到问题。 在同样的方法 - 它的工作,但我在其他方法,或其他控制器或模型中调用userdata我只看到这个:

print_r($this->session->userdata('user_session'));
  

让我们看一下简单的例子(记住,这不是我的完整代码!): 所以,控制器Sessiontest.php:

class Sessiontest extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
    //session library loaded by autoload.php
  }
  public function firstStep()
  {
    echo 'set userdata';
     $data = array(
      'example1' => '123',
      'example2' => 321
    );
    $this->session->set_userdata('user_session', $data);
    print_r($this->session->userdata('user_session'));
  }
  public function secondStep()
  {
    echo 'get userdata ';
    print_r($this->session->userdata('user_session'));
  }
}

在浏览器中: ... / sessiontest / firststep:

  

set userdataArray([example1] => 123 [example2] => 321)

... / sessiontest / secondstep:

  

获取userdata

使用文件驱动程序和数据库驱动程序时效果相同。 任何帮助将不胜感激。我不掩饰我是初学者,但我无法在没有任何帮助的情况下解决这个问题。

//编辑#1: 额外: 在Opera和Chrome中测试过。

//编辑#2: 当我使用文件驱动程序时,每次刷新都会创建下一个新会话文件,当我使用数据库驱动程序时,每次刷新都会创建数据库中的下一个新行。

//编辑#3: 答案中建议的变化。

1 个答案:

答案 0 :(得分:-1)

$this->load->library('session'); //加载seeion库

$this->session->set_userdata('name',$data);您没有提供会话变量的名称