【问题标题】:Session value get deleted on page refresh in ci会话值在 ci 中的页面刷新时被删除
【发布时间】:2014-11-26 12:22:57
【问题描述】:

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

这是我的代码。

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;
}

【问题讨论】:

  • 注意: Codeigniter 默认使用基于 Cookie 的机制,因此它提供有限的存储空间。如果要扩展存储限制,可以将其配置为将会话数据存储在数据库中。检查 CI 文档。
  • 是的,但我不会在会话中存储过多的数据,以免我的会话被删除。
  • 好吧,不如尝试使用print_r($this->session);在这两个函数中进行调试

标签: codeigniter


【解决方案1】:

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

你必须在设置前检查。

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

【讨论】:

  • 不,没有任何返回 null 的 post 函数。我已经检查了价值。取值成功并成功存储在session中,但是当我刷新页面时,session中存储的值都被删除了。
  • 你每次都发送post值吗?
【解决方案2】:

我解决了这个问题。实际上,我不小心在代码开头破坏了会话。所以,我的会话全部被破坏了。我删除了代码,它工作正常。

【讨论】:

    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多