Codeignitier购物车只容纳10个条目,甚至将会话存储在数据库中
codeignitier cart only hold 10 items even store the session in database
我在这个论坛上看到了很多关于codeigntier cart的问题这个问题只能通过修改配置文件
来解决。但我仍然面对这个问题
我已经改变了配置文件,像这样
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 600;
在数据库中,ci_sessions表中,user_data列中,项可以存储10个以上
s:11:"total_items";i:12;s:10:"cart_total";i:420000;}}
和显示购物车项目
的代码foreach ($this->cart->contents() as $items): ?>{
echo $items['id'];
echo $items['image'];
....
}
当我检查firebug时,我仍然得到一个关于cookie大小限制的错误
还有什么我应该检查来解决我的问题??
您遇到了最大cookie长度的问题,因为CodeIgniter默认情况下使用会话cookie来存储会话数据。cookie每个域可以容纳4093个字节数据(所以如果你有2个cookie,它们的总和不能超过这个值)。
如果你让CI使用数据库存储会话(就像你现在做的),那么应该减少cookie的大小。CI将只把会话元数据放到cook中,而把用户数据放到数据库中。检查您的CI版本,也许您使用的是过时的版本。
或者你可以检查会话库替代品,如NativeSession,这段代码将模仿相同的API,但使用php的内置会话功能,所以你可以很容易地使用文件或memcached备份存储。
相关文章:
- '会话'未定义-会话存储的Este JS/Express/Redis
- 当会话存储阵列中存在大量元素时,如何从中删除元素
- C#/Javascript会话存储
- Javascript 会话存储变量未正确保存
- 不会删除会话存储
- 如何改进此会话存储命名系统/for循环
- 会话存储何时实际清除
- 浏览器会话存储.在选项卡之间共享
- 会话存储:如何存储多个对象
- 在Polymer中使用会话存储web中的数据
- 会话存储安全性
- 尝试使用会话存储;无法设置属性'登录'的未定义引用或null引用
- 会话存储
- 如何使用java脚本更改浏览器的内存管理以增加会话存储和本地存储的内存
- 使用 JSP 设置 HTML5 会话存储<键,值>
- 测试本地存储/会话存储最大数据量
- 我可以将整个标签存储到会话存储中吗?
- 会话存储未保存或未加载
- 如何在 Servlet 中将对象从会话存储到 List
- 是否有跨子域工作的现代会话存储替代方案