[PHP-users 9085] 複数のセッションIDをもたせる方法(was Re: 同一ブラウザの...)

H.Fujii php-users@php.gr.jp
Sun, 4 Aug 2002 15:50:32 +0900


藤井です。勝手にサブジェクト変更させていただきました。

PHP4標準のセッションIDは、クライアントのブラウザがCookieを使用可能な
設定にしていた場合、CookieでセッションIDを保管させます。Cookieを使用
不可に設定していた場合、及びスクリプトかphp.iniで明示的に使用しない
設定にしていた場合には、URLにセッションIDを埋め込みます。

Cookieを使用するとセッションの管理はクライアントのブラウザが担う事に
なります。というとちょっと語弊がありますが、要はブラウザがセッション
を保存したCookieを別にしたいセッションにも吐くかどうかということです。
多くのブラウザでは、セッションCookieを保存したブラウザと同じプロセス
として動作させる(ex.Ctrl+Nなどで)とセッションCookieを共用し、新たに
ブラウザを起動させると共用しない場合が多いようです。

お望みのようにクライアントに同時に複数個のセッションを持たせたい場合、
上記の通りクライアントの仕様によりこちらではどうしようもない問題があ
るのを承知の上で、セッションを明確に管理して同じセッションIDで複数個
起動をされないように設計するか、セッションIDをURLに埋め込んで管理する
方法をとるしかないと思います。

そもそもセッションというのは単一のプロセスである事を前提に設計された
ものなので、個人的には同じセッションで複数個起動できないようにするの
が一番安全で簡単だとは思います。

長文失礼いたしました。それでは。