[PHP-users 10316] Re: セッション切れについて教えてください

Naofumi Kondoh php-users@php.gr.jp
Tue, 24 Sep 2002 12:43:18 +0900


ソフト工房の近藤です。

Masahito NAGATA wrote:
>  永田と申します。

...略...

>>PHP4を使用してショッピングサイトを作ろうとしています。
>>セッション切れの検出をして警告ページを出力したいのですが、
>>どのような検出方法があるのでしょうか。何方かお教えください。
> 
> 
>  PHPのバージョンはいくつですか?
> 
>  4.1.x 以降であれば、
> isset($_SESSION["hoge"]) などとして、セッション変数がセットされているかどうかとか、
> $_SESSION["hoge"] != "" などとして、セッション変数に値が入っているかどうか、
> などといった確認方法がありますね。

この方法だと、セッション切れか、新規セッションかの
判定ができないですね。

厳密に、セッションのタイムオーバーと、新規セッションを
区別したいのであれば、セッションファイル破棄までの
時間を十分長くするか、PHP の組み込み機能ではなく自分で
セッション情報管理をするようにしておいて、
(1)最終アクセス時刻をセッション情報に記録する。
(2)上記時刻より規定時間を経過したらセッション切れ
   (有効時間超過)とみなした処理をする。
   例えば、パスワードの再入力とか。
(3)セッション情報がなければ、新規セッションとして扱う。

ということで如何でしょうか。

どの程度厳密にしたいのかは、用途次第ですね。

会員制などで顧客番号や、メールアドレスで識別できる
システムの場合、DB に、前回アクセス時刻や、終了状態
等々を、会員や顧客毎に格納しておいて、次回アクセスに
その情報を使用するというようなこともできます。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        Email:  nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
2002-09-26(木)19:00-21:30 第6回 JPUG 業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/