3

データを構成ファイルに保存しようとして問題が発生していますCodeigniter

問題

セッション データが大きくなりすぎて、Cookie の最大サイズである 4kb を超えているようです。その結果、たとえば flashdata が機能しなくなります。

なぜそれが起こるのか

次のオブジェクト内のセッションに構成変数が 4 回追加されているようです。

  • CI_Hooksオブジェクト (オフにする必要があります)
  • CI_Utf8物体
  • MY_Routerオブジェクト ( URLの置換'_'に使用)'-'
  • CI_URI物体

興味深いことに、構成ファイルで機能がオフになっている場合でも、フック オブジェクトが存在します。 $config['enable_hooks'] = FALSE;

質問

1 - セッションで乗算せずに構成データを保存するにはどうすればよいですか?
2 - また、config で無効になっているフック オブジェクトが有効になっているように見えるのはなぜですか?

その他の詳細

  • CI_バージョン 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 に答える