Php 未在CodeIgniter中更新会话值

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'));

我想知道是我刚刚发现了一个bug,还是编程的时间可能让我看不到明显的问题

下面是我的代码示例:

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的答案。