Codeigniter - 会话变量神秘地消失了

时间:2012-12-14 05:38:32

标签: codeigniter session codeigniter-2

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

我认为这个

  1. 页面A使用$ this-> session-> set_userdata()在会话中设置一些变量。
  2. Page A重定向到第B页
  3. 预计页面B将保留在页面A中设置的会话变量。
  4. 然而,这就是我发生的事情

    1. 页面A使用$ this-> session-> set_userdata()在会话中设置一些变量。
    2. Page A重定向到第B页
    3. 页面B不保留在页面A中设置的会话变量。
    4. 我在页面A中有代码,在重定向到页面B之前,在日志中保存并记录$ this-> session-> userdata的内容。日志显示会话中设置的值存在。

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

      我真的不知道这是怎么回事。我已经仔细检查过我没有取消设置页面B中的值。就像CI_Session在某种程度上在幕后取消它们一样。

      有什么想法吗?

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

1 个答案:

答案 0 :(得分:1)

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

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

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