Php 未在CodeIgniter中更新会话值
我想知道是我刚刚发现了一个bug,还是编程的时间可能让我看不到明显的问题 下面是我的代码示例:Php 未在CodeIgniter中更新会话值,php,codeigniter,Php,Codeigniter,我想知道是我刚刚发现了一个bug,还是编程的时间可能让我看不到明显的问题 下面是我的代码示例: class home extends CI_Controller { public function __construct() { } public function edit() { // Prints: John print_r($this->session->userdata('name'));
class home extends CI_Controller
{
public function __construct()
{
}
public function edit()
{
// Prints: John
print_r($this->session->userdata('name'));
$this->load->view('home/edit');
}
public function ajax_edit()
{
$this->session->userdata('name', 'Obama');
// Prints: Obama
print_r($this->session->userdata('name'));
}
}
我用ajax调用函数ajax\u edit
,打印的是“Obama”,这是正确的。之后,我刷新页面(到edit
函数),并且name
的输出是“John”
为什么在上帝的天堂里,会议没有更新“奥巴马”的价值观?似乎在刷新后,它会重置或返回到旧值“John”。问题在于您没有使用正确的方法 为了向CI会话设置任何新信息,您需要使用
set_userdata()
,并且为了检索或检查会话中使用的内容userdata(“键”)
解决方案:重写ajax\u edit()
方法代码,如下所示:
public function ajax_edit() {
$this->session->set_userdata('name', 'Obama');
// Prints: Obama
print_r($this->session->userdata('name'));
}
来源:您在哪里设置会话数据?请参阅CodeGodie的答案。