【问题标题】:Codeigniter sessions errors and workaroundsCodeigniter 会话错误和解决方法
【发布时间】:2013-12-06 07:47:10
【问题描述】:

因此,在阅读了有关 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 本地会话结合使用?

任何更多信息将不胜感激。 非常感谢

【问题讨论】:

    标签: php codeigniter session cookies


    【解决方案1】:

    您似乎对什么是会话或 cookie 和会话之间的区别感到困惑。

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

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

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

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

    5. 在文档的最顶部“注意:Session 类不使用原生 PHP 会话。它生成自己的会话数据,为开发人员提供更大的灵活性。”我建议不要这样做,因为它没有任何作用。

    【讨论】:

    • 我不是 PHP 初学者。我是 Codeigniter 的新手。我知道会话存储在服务器上,这就是为什么我很困惑为什么它说它将数据存储在 cookie 中。我会检查 PHP 错误日志,但 502 错误是服务器错误(网关错误)。谷歌搜索,有几个人遇到了 flashdata 和 502 错误的问题。而且我宁愿不使用 PHP 本地会话,因为它使使用 CI 的想法无效。
    • 有些人称它们为(会话)服务器端cookie,因为它们是智障并且想迷惑人们。我明白你的意思了。你用的是 nginx 还是 apache?
    • 另外,您可以查看 apache(或 nginx)的错误日志,它会解释 502 错误
    • 刚刚将我的 flashdata 方法调用更改为 userdata 方法,它似乎按预期工作。感谢您的回答
    • 谢谢,现在我知道了它的目的,它确实更有意义了,现在关于服务器端cookies和客户端cookies的困惑也已经解决了!我想还有很多东西要学。
    猜你喜欢
    • 1970-01-01
    • 2017-09-22
    • 2016-10-14
    • 2012-10-07
    • 2018-04-07
    • 2017-11-18
    • 2017-02-13
    • 2013-02-08
    • 1970-01-01
    相关资源
    最近更新 更多