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)