質問: 300; ``` ### 試したこと 検証用コントローラを作ってシンプルなコードで呼び出しましたが、現象は変わりませんでした。 また、同様の報告を探しましたが見つかりませんでした。 ### その他 運用中のサービスのため、セッション機構自体を大幅な変更(Cookie→DBにする、自前のセッションを利用する、等)は避けたいです。 RFC 6265でも「サーバは、同じ応答内に同じ cookie-name の複数の Set-Cookie ヘッダを内包するべきでない」との記載があり、 上述の挙動がCIの仕様とも考えにくいので、何らか対策が可能ではと思うのですが、ご存知の方いらっしゃらないでしょうか。 よろしくお願いいたします。
回答: > > 上述の挙動がCIの仕様とも考えにくいので > > > 考えにくいことではありますが、デフォルトのCodeIgniter 2でCookie保存をしていると、**書き換えるたびに`Set-Cookie:`が書き出される**挙動となってしまうようです(ソースコードに当たって確認しました)。 1. `set_userdata`が呼ばれる 2. 変数へのデータ書き込み後に必ず`sess_write`が走る 3. `sess_write`は、DB保存しない場合には必ず`_set_cookie`を呼び出す なお、これも一因なのかはわかりませんが、CodeIgniter 3ではクッキー保存自体が廃止されています。