[PHP-users 9361] Re: セッションと GCについて

しょうなり [ml] php-users@php.gr.jp
Mon, 19 Aug 2002 12:04:58 +0900


しょうなりです。

Ryo Takahashi さんは書きました:

> ログイン後にセッションがGCされてしまうと、
> セッション変数の中身は空っぽになってしまうので、
> 仮に最終アクセス時間を入れたとしても判断できなく
> なってしまいます。(最初はできるかなと思ったんですけど、未熟でした・・)
> こういう場合は、どの用に、皆さん実装されているのでしょうか?

セッションが切れた場合は前のページとの関連性が一切切れてしまいますので
ログイン前なのか、セッション切れなのか判断が大変難しいでしょう。

それならGCまでの時間を長く取り、GCされる前に潔くセッション切れの案内を
出すという方法はどうでしょうかと思ったのが前回の投稿です。

ちなみに僕の場合はGCまでの時間を1時間にし、1時間以内にアクセスがない
場合はただ単に最初(ログイン前)に戻るという方針で今までやってきました。

もし何か方法を考えるのなら、次の2つの方法を思い付きました。

1)認証済みかどうかの真偽値を ExpireなしのCOOKIEで もう1つ別に保存し、
    COOKIE SESSION
  偽   偽   ログイン前
  偽   信   ログインしてない(起こり得ないんじゃないかな(?))
  信   偽   GC後
  信   信   ログイン後
 と判断できるのではないでしょうか?
 COOKIEの値は汚染される可能性があるということを考慮に入れておいてください。
 (真偽値くらいならいいと思いますが)

2)認証ページと実行ページを分け、実行ページでは
  認証されていないと再ログインの案内をする

 index.php    認証のみのページ

 ↓認証したら ↑認証切れ

 contents.php コンテンツ実行
  認証切れの場合は案内を出し index.php に戻させる
  ブックマークに入れられて、認証せず直接見られた時のことも考えて
  案内文を書けばいいでしょう。


うまく組めるのなら1のほうがスマートでしょうね。
参考になりますでしょうか?


-- 
しょうなり@信州 肥田昌也
Email(ML): ml@webappli.jp
Email:     shounari@webappli.jp
HomePage:  http://www.webappli.jp/
	=> JSlayout プレビュー版(見〜る〜だ〜け〜)