我试图在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;
我无法理解它在实际函数中如何设置会话但是在转到另一个函数时似乎将其删除。
答案 0 :(得分:0)
这是您在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保持配置设置不变,您不需要修改它。
答案 1 :(得分:0)
$config['sess_driver'] = 'files';
并使用以下代码设置会话
$newdata = array(
'base_url' => base_url()
);
$this->session->set_userdata($newdata);
注意:确保session library is loaded in CI(在config / autoload.php或函数本身)。