日記
セッションの怪しい挙動が直った気がするEdit

カスタムセッションハンドラを使うといまいち再現性がない怪しい挙動をしていた件だけど、もしかしたらこれで直ったのかな? 例外ログに残ってないからエラーは出ていないのかと思ったら、httpdのエラーログの方にエラーが残っていた*1

Failed to initialize storage module: user (path: )

よく分からないけど、セッションハンドラの登録の仕方がおかしいのか? で、PEARのHTTP_Sessionのセッションコンテナ周りを見ていたら、

session_module_name('user');

というコードがあった。session_set_save_handler()するだけじゃなくて、session_module_name()を使って明示的にカスタムハンドラを使っていることを指定しなければならないんだっけ?

上記コードを追加+セッションID再発行周りの処理をちょっと書き換えてみたところ、俺の手元ではIEコンポーネントブラウザでもおかしな挙動を起こすことがなくなった模様。後者の方も結構重要な変更(セッションID付け替え後のセッション再スタートのタイミングを変えた)なんで、どっちの修正で直ったのか不明*2。でもエラーメッセージ自体は前者の関係っぽいよなー。

*1 PHP5で例外に頼りすぎると良くない例

*2 修正は一つずつ適用しましょう

Published At2006-07-11 00:00Updated At2006-07-11 00:00