ディレクトリが異なるアプリごとにサイトのセッションを分ける方法
2017/9/10
文書番号:20774
通常、PHP のセッションはドメイン単位で管理されます。
そのため、一つのドメインでディレクトリを分けて複数のアプリを公開した場合、AのサイトとBのサイトでセッション変数が混在し、
AのサイトへログインするとBのサイトでもログインしたことになったり、AのサイトでログアウトするとBのサイトでもログアウトしたことになったりします。
http://example.com/aaa/ と
http://example.com/bbb/ のような場合。
それぞれが独立したアプリであれば他のアプリとセッションが混在するのは致命的です。
こういった場合は「session_name()」を使用することで対応することができます。
通常、「session_start();」をするとセッション変数などを使用することができます。
session_start();
※通常、これを指定しない場合は自動でランダムにセッション名が設定されます。
session_name("hogehoge");
session_start();
Aのサイトのすべての「session_start」の前に同じ文字列で「session_name()」を指定します。
BのサイトではAのサイトとは異なる文字列で「session_name()」を設定します。
これでセッションは同じセッション名の中だけで管理されますので複数のサイトのセッションを別々に管理することができます。