Codeigniter会话不在其他功能中工作

时间:2013-12-29 17:33:40

标签: php codeigniter session

您好我有这种新问题,我的codeignitor会话无法在控制器中的其他功能中使用

例如我的login3函数

\\Data is coming from here fine
foreach($query as $row)
{

 $name = $row->name;
 $id = $row->id;
$dmail = $row->email;

}

 if(isset($dmail))
{



  $arr = array();


 $arr['name'] = $name;
 $arr['id'] = $id;
 $arr['email'] = $email;


 $this->session->set_userdata("facebooker",$arr);

 $this->load->model('Gift');



$this->load->library('session');

$der = $this->session->userdata("facebooker");


 $arrr = array();



 $arrr['unamer'] = $der['name'];

 $arrr['ids'] = $der['id'];
 $arrr['email'] = $der['email'];

//After loading the views all data shows fine

$this->load->view("gifttoday/header",$arrr);
$this->load->view("gifttoday/welcome",$arrr);

 }

但是当我在这个函数中调用相同的会话但是在同一个控制器中它没有显示数据

function profileselect()
{
$this->load->model('Gift');

 $var =array();

 $this->load->library('session');
 // Here i call this session but no data
  $mer = $this->session->userdata("facebooker");
 // When i print all the values of $mer it shows empty array 
 var_dump($mer);
/**
$this->load->view("gifttoday/header",$arrr);
$this->load->view("gifttoday/profilev",$arrr);
**/
  }

我已经搜索过这个问题而且我的人员在使用codeignitor会话时遇到了这个问题但是没有任何修复工作可以帮助我。

2 个答案:

答案 0 :(得分:1)

最好是在构造函数中加载会话库

public function __construct() 
    {

      $this->load->library('session');
}

或在config.php

中启用会话库

答案 1 :(得分:1)

您在设置可能会覆盖它的会话数据后调用该库(如果您已经在第一时间加载了会话库):

所以这个:

$this->session->set_userdata("facebooker",$arr);
$this->load->model('Gift');

$this->load->library('session');

应该是这样的:

$this->load->library('session');
$this->session->set_userdata("facebooker",$arr);
$this->load->model('Gift');

但是,如果您打算在应用中的多个位置使用会话库,那么自动加载它会更好...

在文件 application / config / autoload.php

中编辑此行

$autoload['libraries'] = array('session',...);

然后只需避免在需要时手动加载它。