Codeigniter $ this-> session-> set_userdata()无法正常工作

问题描述 投票:0回答:3

我正在生成一个会话,但是当我生成它时,我在调用__ci_last_regenerate函数后没有得到$this->session->set_userdata('sessionName',$sessionArray)。当我在没有__ci_last_regenerate的情况下生成我的会话后重定向时,会话数据没有出现在下一页上。我正在使用CI 3.1.4

$user_basic = array( 
    'user_id' => $user_id, 
    'email' => $this->input->post('email'), 
    'is_user_login' => 'true', 
    'language' => 'eng' 
); 
$this->session->set_userdata('user_basic',$user_basic); 

echo'<pre>';print_r($this->session->userdata());

谢谢

php codeigniter session
3个回答
10
投票

如果您使用的是PHP> = 7.0,请检查您的codeigniter版本。

如果codeigniter版本是3.0或小于3.0,那么您需要将codeigniter更新为当前版本(例如,codeignator当前版本3.1.7)


1
投票

在config / autoload.php $autoload['libraries'] = array('session');中自动加载您的会话

首先确保已设置会话保存路径。有些人认为就像这个例子

$config['sess_save_path'] = APPPATH . 'cache/sessions/'; 
$config['sess_regenerate_destroy'] = TRUE;

文件夹权限0700

然后尝试在控制器上设置会话,例如示例

$sessionArray = array(
   'is_logged' => TRUE
);

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

// Remove the sessionName $this->session->set_userdata('sessionName',$sessionArray)

然后你应该能够访问像这样的会话

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

-1
投票

首先加载会话库:

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

像这样使用它:

$this->session->set_userdata($sessionArray)

但它完全取决于你的其余代码。上传其余代码以获得更好的解决方案

© www.soinside.com 2019 - 2024. All rights reserved.