Skip to content

Latest commit

 

History

History
111 lines (89 loc) · 4.13 KB

session.wiki

File metadata and controls

111 lines (89 loc) · 4.13 KB

  1. summary セッション
  2. labels Manual

Table of Contents

導入

BEARのセッションはPEAR::HTTP_Session2()を利用しています。ページにインジェクトして使います。

$config

|| キー|| 型 || 意味 || 必須? || デフォルト || || adapter || mixed || アダプター || || 1 || || prefix || string || セッションキープリフィックス || || null || || path || string || path: dsn | session file path | memcache host(s) || || || || idle || int || アイドル時間 || || || || callback || string || idleタイムアウトコールバック|| || || || expire || int || エクスパイア時間 || || 0 || || expire_callback || string || expireタイムアウトコールバック|| || || || gc_max_lifetime || int || GCが実行されない最大時間|| || ||

※ アダプター 0 なし | 1 File | 2 DB | 3 memchache

動作

App.phpでセッションエンジンを選択します。memchaced, DB, fileセッションが使用できます。※fileセッションではwebの分散化が利用できません。基本機能は以下の通りです。

その他のHTTP_Session2の機能が利用できます。時間が経ってパスワードの入力を再度 求めたりする機能が実装できます。

タイムアウト

セッションタイムアウトは2種類あります。セッション開始から最後の操作からの時間がカウントされるidleと、セッション開始してからの時間がカウントされるexpireです

idle

最後のweb閲覧から一定時間たったらセッション切れが通知されるオプションです。idleでは時間を設定してcallbackでアイドル時間が切れた時にコールバックされるメソッド名を指定します。例えば10分アクセスが行われない`App_Session::onSessionTimeout()`をコールするときは以下のように設定します。

`App_Page::onSessionTimeout()`内ではセッションタイムアウトを知らせたり、再ログインを受け付けるフォームを表示したりします。※以下のように明示的に破壊するか、expireで指定した時間がこない限りセッションデータは破壊されません。

コールバック先ではセッションを破棄して無効にするか、延長して使用を続けるかを記述することができます。コールバックを指定していないとセッションは破棄されます。

expire

セッション開始してからセッションタイムアウトはexpireで指定します。expire_callbackオプションが指定されてないとこの時間のたったセッションは破棄されます。

セッションタイムアウトサンプル

DBセッション

DBセッションを利用する場合、デフォルトで以下のテーブルを作成する必要があります。

}}}