Codeigniter会话错误和解决方法

时间:2013-12-05 23:38:43

标签: php codeigniter session cookies

因此,在阅读了CodeIgniter会话库的文档之后,我发现它相当令人困惑。

我的问题源于需要存储一些信息(文件名,产品ID和颜色ID数组)。我正在使用flashdata。

我收到了502错误。删除set_flashdata()方法已经停止了,但我仍然需要发送数据。

根据我的理解,CI默认从超全局数组中擦除所有数据,因此我不能使用PHP原生会话。

此外,文档还说明了以下内容:

  

会话数组的一个有用方面是您可以添加自己的数据   它将存储在用户的cookie中

我发现这很令人困惑,PHP将会话ID存储在cookie中,并将会话数据存储在服务器上。 CI表示将自己的数据添加到cookie时意味着什么?

当然我想要这个功能我只是将数据存储在cookie中而不是使用会话?

此外,文档的另一部分说明:

  

Cookie只能容纳4KB的数据,因此请注意不要超过   容量。   加密过程特别会产生比原始数据字符串更长的数据字符串,因此请仔细跟踪存储的数据量。

他们是在谈论将我的数据存储在实际的Cookie中吗?还是在会议期间?我怎么知道我是否使用超过4KB的数据?这是每个flashdata会话?或者所有数据总数?

所以我的问题(作为要点)是:

  1. 使用会话库时,数据是存储在cookie还是实际会话中?
  2. 使用flashdata时,为什么会出现502错误?
  3. 如何计算我正在使用的数据
  4. userdata()flashdata()方法可以存储不同数量的信息吗?
  5. 无论如何,我可以将CI会话库与PHP原生会话结合使用吗?
  6. 我们将不胜感激。 非常感谢

1 个答案:

答案 0 :(得分:2)

您似乎对会话甚至是什么或者Cookie与会话之间的区别感到困惑。

  1. 它被称为会话库和会话,因为它是服务器端会话

  2. 你知道php有一个错误日志,你有能力找到具体的错误,事实上这就是你应该做的。?

  3. 除非你试图滥用会话的目的,否则你会没事的

  4. flashdata用于flash消息,userdata用于存储需要为其他目的检索的数据。即使回答你的问题也毫无意义。

  5. 位于文档的最顶层“注意:Session类不使用本机PHP会话。它会生成自己的会话数据,为开发人员提供更大的灵活性。”我会反对这一点,因为它没有用处。