2012-12-14 46 views
3

我使用Codeigniter 2.1.0和CI_session进行会话处理。Codeigniter - 会话变量神秘消失

我以为这

  1. 第一个设置在会话中使用$这 - >会话级> set_userdata()一些变量。
  2. 页A重定向到网页B
  3. 网页B预计保留页A.已设置的会话变量

然而这就是发生在我身上

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

我有代码页A保存和记录的$这个 - >内容的会话变量会话 - >用户数据在重定向到页面B之前的日志中。日志显示在会话中设置的值存在。

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

我真的不知道这可能是怎么回事。我再次检查了我没有在页面B中取消设置值。这就像CI_Session在某种程度上将它们置于幕后。

任何想法?

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

+0

您是否将会话数据保存到数据库中...如果不尝试将会话数据保存到数据库中......'$ config ['sess_use_database'] = TRUE;'...并检查... – bipen

+0

是否发生在所有浏览器? –

+0

这是所有会话数据吗?或只是其中的一部分?如果您的会话数据超出了Cookie限制的大小,则并非所有数据都会被传递。尝试将它们保存到数据库中,如果您尚未。 – Jeemusu

回答

1

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

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

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