Oddwit


CodeIgniterのセッション問題解決

Posted in CodeIgniter, PHP by マルコ on the May 14th, 2007

以前から数回にわたって書いてきたCIセッション問題が解決した。

問題というのは、セッションの有効期限を「ブラウザが閉じるまで」に設定できなかった件、そして個別のセッションについて期限を設定できなかった件だ。

CIのライブラリを拡張してDBのセッションテーブルの構造を含めかなり手を加えることになってしまったが、外観的にはメソッドが一つ増えただけのかなりスッキリした改造だ。

結局、クッキーをセットするときに期限を「0」にしておけば「ブラウザが閉じるまで」セッションになるということと、個別に期限を設定するにはそれぞれのセッションデータ自体に自らの期限を保存するしかないという二点が作業内容の主なポイントだった。

式の記述ミスで現行セッションがガーベジコレクションされてしまったりと前途多難だったが、今回の作業でありがたいと思ったのはテキストログの出力機能だ。主としてクッキーを扱う作業のため、これまでやってきたようなechoによるデバッグはできない。そこでメッセージをテキストファイルに書き出すCIの機能に大変お世話になった。こういうクリティカルな場面でなくとも、表示を乱さずにデバッグできるのは時によっては役に立つ。

Leave a Reply