ユーザーデータベースとログインフォームを備えたWebサイトがあります。このシステムは100%完璧に機能しています。名前= _www.example.com
_のメインサイトと_accounts.example.com
_というサブドメインがあります。ユーザーがログインすると、メインサイト_www.example.com/login.php
_にログインします。
プロフィールを表示して編集するには、_accounts.example.com/profile.php?user=theirusername
_に移動するリンクをクリックします。ページが読み込まれると、編集ボタンが表示され、自分のアカウントを表示しているかどうかが表示されます。 <?php if($user == $dbusername){ echo"<a href='edit.php'>EDIT</a>";}
のようにこれを実行します。この機能は、_www.example.com/Accounts/profile.php?user=theirusername
_に移動すると正常に機能しますが、サブドメインでは機能しません。 _accounts.example.com
_は、_www.example.com/Account/
_と同じパスを指します。
なぜこれが起こっているのか私にはわかりません。私は標準のphpSESSIONSを使用しています。 Safari Inspectorの[Cookies]タブの内部を見ると、1 SESSION、_accounts.example.com
_が表示されます。
Cookieを別のサブドメインに「運ぶ」方法はありますか?どんな助けでも素晴らしいでしょう!ありがとう!
サブドメイン_www.example.com
_と_accounts.example.com
_の両方でCookieを使用する必要がある場合は、ルートドメイン_example.com
_に設定する必要があります。 PHP設定 session.cookie_domain を_".example.com"
_に変更する必要があります。
session.cookie_domain = ".example.com"
_を持つことができますphp_value session.cookie_domain .example.com
_ini_set('session.cookie_domain', '.example.com' );
これが推奨される順序です。サーバー構成にアクセスできる場合は、関連するVirtualHost
sの_php.ini
_でこれを行う必要があります。 3番目のオプションは、PHPスクリプトごとに個別に変更する必要があるため、最悪です。