[PHP-users 28703] Re: 同時アクセスがあった場合の制御

Shu Sawada luna @ lunanet.gr.jp
2006年 3月 10日 (金) 16:33:16 JST


さわだです。
もう解決している話だと思うので、蛇足なんですが。

>> ログアウトする・・もしくはブラウザを閉じた時に
>> セッションファイルの中身が消えますので、
>> それをうまく利用すると出来そうですね。
> 
> なるほど。こんな感じですか?
> 
> ・ログイン時
>  認証OKであれば、
>   - データベースより会員IDをキーにセッションIDを取得。
>    - 取得したセッションIDよりセッションファイルが存在するか判定
> 
>   セッションファイルが存在する
>     - 同時アクセスとなるため、エラーを返す
>    セッションファイルが存在しない
>    - 会員IDをキーとして、セッションIDをデータベースに登録

これだと、一度でも正常にログアウトしなかった場合(ブラウザの×ボタン押下等)
DB上にsession_idが残っているということに留意して下さい。
DBレコードの削除処理が走るまでログインできないという事態になると思います。
たとえば、ID/PWを入力するとメールが飛んで、メール中のURLを踏むとDB上の
レコードを消すとか、そういう追加画面が必要になって来るのではないでしょうか。

てことで、後から入ってくるのを許可して、
元からいる人を蹴る方がラクだよなーと考えたのでした。

#あ、ブラウザを閉じてもセッションファイルは消えないと思います>元レスの方


では。

-- 
Shu Sawada
http://luna.lunanet.gr.jp/


PHP-users メーリングリストの案内