3

我在尝试将数据存储到配置文件中时遇到了一些问题Codeigniter

问题

会话数据变得太大,似乎超过了 cookie 最大大小的 4kb。结果,例如 flashdata 停止工作。

为什么会发生

似乎配置变量被添加到以下对象内的会话中 4 次:

  • CI_Hooks对象(应关闭)
  • CI_Utf8目的
  • MY_Router对象(用于在 URL中'_'替换)'-'
  • CI_URI目的

有趣的是,即使在配置文件中关闭了该功能,也会存在 hooks 对象: $config['enable_hooks'] = FALSE;

问题

1 - 你如何存储配置数据而不在会话中成倍增加?
2 - 另外,为什么钩子对象在配置中被禁用时似乎被启用?

其他详情

  • CI_VERSION 2.1.3
  • 会话库是自动加载的
  • 会话存储在数据库中
  • 会话 cookie 已加密
  • 配置文件加载在使用它们的页面中,主要在构造函数内部
  • 配置数据不是很大,如果不相乘的话,非常适合 4kb

Session data ( print_r($this->session) ) : [hooks] => CI_Hooks Object ( [enabled] => [hooks] => Array ( ) [in_progress] => ) [config] => CI_Config Object ( [config] => Array...

提前感谢您的帮助,将不胜感激...

4

1 回答 1

1

如果您在 CI 会话(实际上是 cookie)方面遇到问题,我建议您使用不同的会话库。

这个使用原生 PHP 会话,所以你不会遇到 4kb 限制的问题,或者如果你真的想保持 CI 会话,那么使用数据库函数来存储值。

于 2012-12-20T11:36:20.810 回答