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 列では、アイテムは 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 のサイズの上限を超えているというエラーが引き続き表示されます

問題を解決するためにチェックする必要があるものは他にありますか??

4

1 に答える 1

0

CodeIgniter はデフォルトでセッション Cookie を使用してセッション データを保存するため、Cookie の最大長に達しました。Cookie は、ドメインごとに約 4093 の bye データを保持できます (したがって、2 つの Cookie がある場合、合計サイズはそれを超えることはありません)。

CI でセッション ストアにデータベースを使用する場合 (現在のように)、Cookie のサイズを小さくする必要があります。CI はセッション メタデータのみを cookに配置し、ユーザーデータをデータベースに配置します。CI のバージョンを確認してください。古いバージョンを使用している可能性があります。

または、 NativeSessionなどのセッション ライブラリの代替品をチェックアウトすることもできます。このコードは同じ API を模倣しますが、php の組み込みセッション機能を使用するため、ファイルまたは memcached でバックアップされたストレージも簡単に使用できます。

于 2013-03-30T23:03:12.690 に答える