Php 会话不';无法保存自定义用户数据
我是CodeIgniter的新手,我开始使用会话库 我已自动加载会话库并尝试将当前用户id保存到会话userdata数组。但是当我试图在另一页上阅读时,信息就消失了 本机PHP会话工作得很好(经过测试),所以它一定是来自CI的 我编写了一个简单的测试页面,在其中我测试了以下内容:Php 会话不';无法保存自定义用户数据,php,codeigniter,session,Php,Codeigniter,Session,我是CodeIgniter的新手,我开始使用会话库 我已自动加载会话库并尝试将当前用户id保存到会话userdata数组。但是当我试图在另一页上阅读时,信息就消失了 本机PHP会话工作得很好(经过测试),所以它一定是来自CI的 我编写了一个简单的测试页面,在其中我测试了以下内容: 设置会话userdata 测试页面正确显示用户数据 取消对控制器代码中设置会话数据行的注释,然后重新加载页面 测试页不显示用户数据 控制器的代码: class Welcome extends CI_Controll
- 设置会话userdata
- 测试页面正确显示用户数据
- 取消对控制器代码中设置会话数据行的注释,然后重新加载页面李>
- 测试页不显示用户数据
class Welcome extends CI_Controller {
public function index(){
$data = null;
$data['test'] = "Yeeeeh!!";
$this->session->set_userdata($data);
$this->load->view('welcome_message', $data);
}
}
视图代码:
<?php
echo $this->session->userdata('test');
?>
为什么视图显示会话id而不是您创建的“测试”变量 你测试了吗
<?php
echo $this->session->userdata('test');
在视图文件中?CI的会话是cookie,而不是PHP本机会话。在视图中调用会话是可行的(IIRC),但由于视图是在创建会话的同一请求中加载的,因此不会对其进行设置
您需要在另一个请求(即另一个控制器)上调用它,或者在其他地方设置会话(在另一个控制器中,通过AJAX也可以工作),或者改用本机PHP$\u会话数组
我认为您的实际代码只是一个测试用例,否则为什么不
public function index(){
$data = null;
$data['test'] = "Yeeeeh!!";
$this->session->set_userdata($data);
$this->load->view('welcome_message', $data);
}
鉴于:
<?php
echo $test;
?>
提问前,请阅读本手册,了解会话助手的工作原理。请参阅此处:Thx以获取清晰的注释。。。我读了手册,做了上面说的所有事情。我自动加载了库,设置了会话vdata,然后尝试读取它。因此,如果您没有收到任何错误,您可以安装它。现在再次阅读手册,但这次是关于如何使用它。特别是关于如何命名会话值的部分。我在stackoverflow中输入了一个错误。。如果您阅读了bullit列表,那么在步骤2中,您将看到输出成功。。在第四步中,不要!好的,下一步是了解什么是视图,以及如何将变量传递到视图中。看,我在stackoverflow中输入了一个错误。很抱歉我认为代码正如你所说。谢谢你的回答。这实际上只是一个测试用例。我想设置当前loggedin用户,并希望能够在需要时读取此信息。我想我将使用本机PHP会话来实现这一点,也许可以使用加密库对数据进行加密。问题是要将数据存储到会话中,您要将其直接传递给th视图。