我是CodeIgniter的新手,我开始使用会话库。
我已自动加载会话库并尝试将当前user_id保存到会话userdata数组中。但是当我尝试在另一页上阅读时,信息就消失了。
本机PHP会话工作正常(测试它),所以它必须是来自CI的东西。
我编写了一个简单的测试页面,我测试了以下内容:
控制器的代码:
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');
?>
答案 0 :(得分:0)
为什么视图会显示session_id而不是您创建的“test”变量?
你测试了吗
<?php
echo $this->session->userdata('test');
&GT;
在视图文件中?
答案 1 :(得分:-1)
CI的会话是cookie,而不是PHP原生会话。在视图中调用会话(IIRC),但由于您的视图在同一请求中加载会话创建,因此无法设置。
你需要在另一个请求(即另一个控制器)上调用它,或者在其他地方设置会话(在另一个控制器中,通过AJAX也可以工作),或者使用本机PHP $ _SESSION数组。
我认为您的实际代码只是一个测试用例,否则为什么不只是
public function index(){
$data = null;
$data['test'] = "Yeeeeh!!";
$this->session->set_userdata($data);
$this->load->view('welcome_message', $data);
}
在视图中:
<?php
echo $test;
?>