Php Codeigniter$此->;会话->;set_userdata()工作不正常

Php Codeigniter$此->;会话->;set_userdata()工作不正常,php,codeigniter,session,Php,Codeigniter,Session,我正在生成一个会话,但在调用$this->session->set\u userdata('sessionName',$sessionArray)函数后,生成会话时我没有得到\u ci\u last\u regenate。当我在生成会话后重定向而不重新生成会话时,会话数据不会出现在下一页上。我使用的是ci 3.1.4 $user_basic = array( 'user_id' => $user_id, 'email' => $this->input->

我正在生成一个会话,但在调用
$this->session->set\u userdata('sessionName',$sessionArray)
函数后,生成会话时我没有得到
\u ci\u last\u regenate
。当我在生成会话后重定向而不重新生成会话时,会话数据不会出现在下一页上。我使用的是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());
$user\u basic=数组(
'user\u id'=>$user\u id,
'email'=>this->input->post('email'),
'is_user_login'=>'true',
“语言”=>“英语”
); 
$this->session->set_userdata('user_basic',$user_basic);
回声';打印($this->session->userdata());

谢谢您

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

首先确保已设置会话保存路径。有些人会这样想

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

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

// Remove the sessionName $this->session->set_userdata('sessionName',$sessionArray)
文件夹权限0700

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

<?php echo $this->session->userdata('is_logged');?>
然后您应该能够像这样访问会话

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

首先加载会话库:

$this->session->set_userdata($sessionArray)
像这样使用它:


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

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

如果codeignator版本为3.0或低于3.0,则需要更新codeignator
到当前版本(例如codeignator当前版本3.1.7)

请在此处添加您的代码或您迄今为止尝试过的代码。看到这个问题可能有助于您的解决方案获得
\uu ci\u last\u重新生成
?在config/Autoload.php
$Autoload['libraries']=array('session')中自动加载会话
并尝试将其更改为true
$config['sess\u regenerate\u destroy']=true我需要更多地了解它。我会用谷歌搜索它。谢谢,先生。
$user\u basic=array('user\u id'=>$user\u id',email'=>$this->input->post('email'),'is\u user\u login'=>'true','language'=>'eng')$此->会话->设置用户数据('user\u basic',$user\u basic);回声';打印($this->session->userdata())所以当我打印用户数据时,我应该有一个uu ci_last_regenerate,这样在下一页我就可以继续这个会话了。那么您的初始化应该是
$this->session->set\u userdata($user\u basic)
。对于函数
set_userdata()
只使用一个参数,如果该参数是会话数据的数组,则问题不在于此,您只需认为我没有得到上次重新生成的消息,这对于访问其他页面上的会话非常重要。一般来说,会话创建时会生成上次重新生成。那么您是否尝试过
$this->session->上次重新生成?。或者您可以将config/config.php中的
$config['sess\u driver']
更改为
'database'
。然后从数据库中获取时间戳谢谢你救了我!
$this->session->set_userdata($sessionArray)