別サーバーで運営しているサブドメインのSESSIONを、メインドメインから削除することはできませんか?
たとえば会員サイトのログアウト処理を作るとします。メインドメインとサブドメインはそれぞれ別サーバーで運営していますが、会員はSESSIONを維持して、それぞれのサイトを行き来できるようになっています。
Cookieはメインドメインとサブドメインで共有できるようなのでそうします。会員には必要なサービスを提供するため、$_SESSION関数にいろいろなデータを入れていきます。
メインドメインとサブドメインの間をうろうろしていると、PHPSESSIDという名前の Cookie がそれぞれのサーバーにひとつずつできてしまいます。
メインドメイン側にある、logout.php のようなファイルにアクセスして Cookie と SESSION の削除を試みます。
Cookie と SESSION の削除
php
1$_SESSION = array(); 2 3if (ini_get("session.use_cookies")) { 4 $params = session_get_cookie_params(); 5 setcookie(session_name(), '', time() - 42000, 6 $params["path"], $params["domain"], 7 $params["secure"], $params["httponly"] 8 ); 9} 10 11session_destroy();
すると logout.php があるメインドメイン側の Cookie と SESSION は削除できますが、サブドメイン側の SESSION が残ってしまいます。
logout のタイミングでメインとサブドメインのどちらの SESSION も削除するにはどうすればいいでしょうか?
そもそも PHPSESSID という名前の Cookie がサブドメインのサーバー内にできることから間違っているような気もしています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。