CodeIgniter開発メモ
ローカル環境でSESSIONが効かない時
CodeIgniterのローカル環境をdockerで作った時にどうしてもSESSIONが有効にならず、途方に暮れていたところこの記事に救われました。
設定ファイルの書き方に問題があっただけでした。。
僕が使っているcodeIgniter3.1.0では、confing.phpの約430行辺りの
$config[‘cookie_secure’] = TRUE;
$config[‘cookie_httponly’] = FALSE;とっていました。
つまりセキュリティ上、httpsにのみ対応する。
ってなっていたのです。
だからサーバー側では動いたのにローカル(XAMPP)ではセッションがなくなったのだと。よって下記のように変更しました。
$config[‘cookie_secure’] = FALSE;
$config[‘cookie_httponly’] = TRUE;問題なくページが変わってもセッションの情報を保持できるようになりました。
全く同じ事象だったので助かりました。
Configの変更は永続化できない
$this->config->item('item_name');
の値の変更をするには、
$this->config->set_item('item_name', 'item_value');
のようにすれば変更できるのですが、これはページ遷移などで初期化されることに注意です。
マニュアルにも記載があります。
CodeIgniter の実行のたび、いくつかの基本クラスは フレームワークのコアの一部として自動的に初期化されます。 しかしながら、コアシステムクラスをあなた自身のバージョンのものに差し替え、 または継承することが可能です。
コアシステムクラスの作成 — CodeIgniter 3.2.0-dev ドキュメント
動的にSESSIONの有効期限を切り替える