我在这个论坛上看到过很多关于codeignitier 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检查时,我仍然收到有关超限饼干大小的错误
还有什么我应该检查来修复我的问题吗?
答案 0 :(得分:0)
您遇到了最大cookie长度,因为CodeIgniter默认使用会话cookie来存储会话数据。 Cookies每个域可以容纳大约4093个bye数据(所以如果你有2个cookie,那么总和大小不能超过那个)。
如果您使CI使用数据库进行会话存储(就像您现在那样),那么应该减少cookie大小。 CI只会将session metadata in the cooke和userdata放入数据库。检查您的CI版本,也许您使用的是过时的版本。
或者您可以查看会话库替换,如NativeSession,此代码将模仿相同的API但使用php的内置会话功能,因此您也可以轻松使用文件或memcached支持的存储。