4

我正在使用 Codeigniter 2.1.0 和 CI_session 进行会话处理。

我假设这

  1. 页面 A 使用 $this->session->set_userdata() 在会话中设置一些变量。
  2. 页面 A 重定向到页面 B
  3. 页面 B 应保留页面 A 中设置的会话变量。

然而,这就是发生在我身上的事情

  1. 页面 A 使用 $this->session->set_userdata() 在会话中设置一些变量。
  2. 页面 A 重定向到页面 B
  3. 页面 B 不保留页面 A 中设置的会话变量。

我在页面 A 中有代码,用于在重定向到页面 B 之前将 $this->session->userdata 的内容保存并记录在日志中。日志显示会话中设置的值存在。

但是,在页面 B 上的 $this->session->userdata 上使用 var_dump() 表明这些值不存在。

我真的不知道这怎么可能。我已经仔细检查了我没有取消设置页面 B 中的值。就像 CI_Session 以某种方式在幕后取消了它们。

有任何想法吗?

编辑:是的,我正在使用数据库来保存会话数据。字段类型为 TEXT。

4

1 回答 1

1

根据我对网络的了解,cookie 和会话存储在客户端计算机中,而不是服务器中。因此 HTTP 基本上将 cookie 和会话添加到您的请求标头并发送请求。

但在这种情况下,您正在设置会话,然后从服务器中的同一页面重定向。普通 PHP 可能会以不同方式处理此问题,但 codeIgniter 不使用原生 PHP 会话。(参考http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

这是我的猜测。但是如果我看看你的代码会很有帮助。

于 2013-01-01T10:19:03.937 回答