[PHP-users 9100] Re: 複数のセッションID をもたせる方法

H.Fujii php-users@php.gr.jp
Mon, 5 Aug 2002 13:30:39 +0900


藤井です。皆様こんにちわ。

> 私も昔、この問題にぶつかって以来、Cookie は原則として
> 使用しないようになりました。
> (snip)
> # 用途によるかもしれませんが、業務アプリでは、同一の
> # プログラムを複数画面起動しておかないと、効率が悪く
> # てしょうがない場合が結構あるので。

確かにCookieを使用したセッションIDの保存については、長所
短所が多く存在すると思います。URLにセッションIDが含まれる
ことで生じる問題さえ解決できれば、Cookieは使用しないのが
得策かもしれません。

複数起動は確かにその通りだと思います。私は業務で使用する
アプリを設計する場合は、標準認証をよく使います。これだと、
ログイン/ログアウトは明示的には処理できないものの、多く
のブラウザで処理開始後窓を増やしてもエラーが起きにくく、
またセッションライクな処理も可能なので、設計しやすいとい
うのが理由です。

> 同一セッション番号で複数個のブラウザ画面が起動しない
> ようにするには、あるいは、複数起動したのを検知するには
> どのようにするのがいいのでしょうか?。
> 
> 私は、セッション送付の都度、連番も一緒につけるように
> して、要所要所で、その連番が SEQ DOWN していないかを
> チェックするようにしています。これで、同一セッション
> IDの複数画面起動も若干はチェックできるかもしれませ
> んが、ほど遠いですね。なんかいい知恵がありましたら、
> ご教示ください。

私が以前使った方法は最後の処理内容を記録し、次の処理が
そこから派生するかを判断するというものでした。ただ、こ
れは処理ツリーが限定していたためにできたのだと思います。
派生する処理が多く存在する場合は、近藤様の仰る連番付与
方式の方が有効だと思います。

最も、一つの窓でログアウトすると全ての窓のセッションが
無効になってしまう、というのだけが問題であるなら、別窓
でログアウトボタンを表示しておいて、アプリケーションの
使用を完全に終了する時にここを押してください、という形
にするだけでも問題はそれなりに解決できるかもしれません。

それでは、また。