Codeigniter 在ci中的页面刷新时删除会话值

Codeigniter 在ci中的页面刷新时删除会话值,codeigniter,Codeigniter,我有一个登录功能。当我登录时,会话被保存。但是当我刷新页面或重定向到另一个函数时,会话(userdata)显示为空白。我已经在autoload中加载了会话库,但是每次页面刷新后都会删除userdata 这是我的密码 public function index () { $user = $this->input->post('user'); // after successful user checking $this->session->set_userdata('use

我有一个登录功能。当我登录时,会话被保存。但是当我刷新页面或重定向到另一个函数时,会话(userdata)显示为空白。我已经在autoload中加载了会话库,但是每次页面刷新后都会删除userdata

这是我的密码

public function index () {
$user = $this->input->post('user');
// after successful user checking
$this->session->set_userdata('user', $user);
// when I print session here,
print_r($this->session->all_userdata());
// session user gets print
}
但当我重定向到一个函数(假设为“test”)时,就不会显示任何会话

public function test() {
print_r($this->session->all_userdata());
die;
}

当您使用$this->input->post('user')读取post值时;并且没有任何post函数返回null并将其保存在用户值中

设置前必须进行检查

    if ($this->input->post('user')) {
        $this->session->set_userdata('username',  $this->input->post('user'));
    }

我解决了这个问题。实际上,我无意中在代码开始时破坏了会话。所以,我的会话被全部破坏了。我删除了代码,它工作正常。

注意:Codeigniter默认使用基于Cookie的机制,因此它提供的存储空间有限。如果要扩展存储限制,可以将其配置为在数据库中存储会话数据。检查CI文档。是的,但是我没有在会话中存储过多的数据,我的会话被删除了。可以尝试使用
print\r($this->session)在这两个函数中进行调试否,没有任何返回null的post函数。我已经检查了数值。该值已成功获取并成功存储在会话中,但当我刷新页面时,存储在会话中的值将全部删除。是否每次都发送post值?