【问题标题】:codeigniter 3.1.7 session not workingcodeigniter 3.1.7 会话不工作
【发布时间】:2018-03-15 03:54:42
【问题描述】:

我正在尝试在 codeigniter 3.1.7 中设置会话,但它无法正常工作。

当我这样做时

function test(){
   $params = array(
       'test' =>'worked',
       'base_url'=> base_url(),
       'temperture' => 23,
       'cart_length'=>'7 items'

   );
   $this->session->set_userdata($params);

   print_r( $this->session->all_userdata());
   // prints data no problem
}

function redirect(){
   print_r( $this->session->all_userdata());
   //prints Array ( [__ci_last_regenerate] => 1521089504 )
}    

配置设置

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'centrl';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 1800;
$config['sess_regenerate_destroy'] = FALSE;
$config['sess_expire_on_close'] = TRUE;

我无法理解它在实际功能中如何设置会话,但在转到另一个功能时似乎将其删除。

【问题讨论】:

  • 为什么将 sess_driver 设置为 null
  • 确保你已经设置了会话保存路径,不要让它为空

标签: php codeigniter codeigniter-3


【解决方案1】:

这是在 CI 中将数据设置到会话中的方法

$session_data = array(
'admin_email' => $result[0]->email_id,
'Admin' => TRUE,
'user_id' => $result[0]->id
);

// Add user data in session
$this->session->set_userdata($session_data);

这是您可以访问会话值的方式

 <?php echo  $this->session->userdata('admin_email');?>

P.S 保持配置设置不变,你不需要修改它。

【讨论】:

  • 是的,我了解如何设置它们,我很欣赏你的说法,但是如果我在设置后立即打印会话,它会显示会话中的数据,但是如果我转到另一个函数并尝试它返回的会话的相同打印 Array ( [__ci_last_regenerate] => 1521084001 )
  • 它就像会话正在设置然后自动取消设置
  • 请试试我的例子,用你的值替换我的值并打印它,它会起作用,你需要打印会话数组,你没有以正确的方式设置它
  • 它仍然是在我设置的函数中打印会话的相同结果,但在另一个函数数组中([__ci_last_regenerate] => 1521084001
【解决方案2】:

Set this files

$config['sess_driver'] = 'files';

并使用以下代码设置会话

$newdata = array(
        'base_url' => base_url()     
);

$this->session->set_userdata($newdata);

注意:确保session library is loaded in CI(在 config/autoload.php 或函数本身中)。

【讨论】:

  • 在同一个函数中打印时它仍然有效,但是在另一个函数数组([__ci_last_regenerate] => 1521089340)中打印时,它更改为配置中的文件也在 autoload.php 中自动加载跨度>
  • 没办法。那你做错了什么。 CI 会话是我使用过的最简单的会话。发布您的完整控制器代码
  • function test(){ $params = array( 'test' =>'worked', 'base_url'=> base_url(), 'temperture' => 23, 'cart_length'=>'7项目' ); $this->session->set_userdata($params); print_r($this->session->all_userdata()); } 函数重定向(){ print_r( $this->session->all_userdata()); }
  • 添加您的问题
  • 这可能与我在 vps 上使用的服务器配置有关
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 2013-08-29
  • 2018-11-22
  • 2012-03-03
  • 1970-01-01
相关资源
最近更新 更多