0

我在这个论坛上看到了很多关于 codeignitier 购物车的问题,只有通过更改配置文件才能解决问题

但我仍然面临这个问题

我已经像这样更改了配置文件

$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 列中,item 可以存储超过 10 个 item

s:11:"total_items";i:12;s:10:"cart_total";i:420000;}}

以及显示购物车项目的代码

foreach ($this->cart->contents() as $items): ?>{
    echo $items['id'];
    echo $items['image'];
    ....
}

当我检查萤火虫时,我仍然收到有关超出 cookie 大小的错误

还有什么我应该检查来解决我的问题吗?

4

1 回答 1

0

您受到最大 cookie 长度的影响,因为 CodeIgniter 默认使用会话 cookie 来存储会话数据。每个域的 cookie 可以保存大约 4093 个再见数据(所以如果你有 2 个 cookie,它们的总大小不能超过这个值)。

如果你让 CI 使用数据库进行会话存储(就像你现在所做的那样),那么应该减少 cookie 的大小。CI 只会将session 元数据放入 cooke中,而将 userdata 放入数据库中。检查您的 CI 版本,也许您使用的是过时的版本。

或者,您可以查看 Session 库替换,例如NativeSession,此代码将模仿相同的 API,但使用 php 的内置会话功能,因此您也可以轻松使用文件或 memcached 支持的存储。

于 2013-03-30T23:03:12.690 回答