furoblog’s blog

妻と一緒にはじめました。1日1更新が目標です。

CodeIgniter開発メモ

CodeIgniter

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;

問題なくページが変わってもセッションの情報を保持できるようになりました。

 

全く同じ事象だったので助かりました。

 

shadeyankee.net

 

Configの変更は永続化できない

 $this->config->item('item_name');

 の値の変更をするには、

 $this->config->set_item('item_name', 'item_value');

 

のようにすれば変更できるのですが、これはページ遷移などで初期化されることに注意です。

マニュアルにも記載があります。

 

 CodeIgniter の実行のたび、いくつかの基本クラスは フレームワークのコアの一部として自動的に初期化されます。 しかしながら、コアシステムクラスをあなた自身のバージョンのものに差し替え、 または継承することが可能です。

コアシステムクラスの作成 — CodeIgniter 3.2.0-dev ドキュメント

 

動的にSESSIONの有効期限を切り替える

 

forum.codeigniter.com