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

eagi6jfj  于 8个月前  发布在  其他
关注(0)|答案(4)|浏览(63)

我正在生成一个会话,但当我生成它时,我在调用$this->session->set_userdata('sessionName',$sessionArray)函数后没有得到__ci_last_regenerate。当我在没有__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());

谢谢你

iecba09b

iecba09b1#

如果您使用的是PHP >=7.0,请检查codeignator版本
如果codeignator版本为3.0或低于3.0,则需要将codeignator更新为当前版本(例如:codeignator(当前版本3.1.7)

hmtdttj4

hmtdttj42#

自动加载您的会话在PHP/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');?>
iyfamqjs

iyfamqjs3#

首先加载会话库:

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

这样使用:

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

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

hsvhsicv

hsvhsicv4#

您需要将codeigniter版本从3.0升级到3.1.x
1.从https://codeigniter.com/userguide3/installation/downloads.html下载3.1.x
1.从此3.1.x复制系统文件夹并通过替换当前系统文件夹将其粘贴到项目中。
这将升级CI版本,会话也将开始工作

相关问题