同じテーマの3つのドメインがあります。誰かが別のテーマを選択した場合、私はそれを3つのドメインすべてに伝播して、彼らの経験が変わらないようにしたいと考えています。
Domain1にcookieを設定し、cookieが設定されているdomain2にリダイレクトし、cookieが設定されているdomain3にリダイレクトし、リダイレクトして戻すことで、これを実現することを計画していました。情報は安全または保護する必要がないため、これは実際に問題なく正常に機能します。
各ドメインにCookieを設定するためだけに3リダイレクトするのは嫌いで、もう少しエレガントなものを探していました。
Googleがやっていることを実行します。はい、Googleはこれと同じトリックを実行して、ユーザーをYouTubeや他のドメインにある他のGoogleサービスにログインさせています。
3つのドメインすべてにCookieを設定する[〜#〜] php [〜#〜]ファイルを作成します。次に、テーマを設定するドメインで、[〜#〜] html [〜#〜]ファイルを作成して、[〜#〜] php [〜#〜]他の2つのドメインにCookieを設定するファイル。例:
<html>
<head></head>
<body>
<p>Please wait.....</p>
<img src="http://domain2.com/setcookie.php?theme=whateveryourthemehere" />
<img src="http://domain3.com/setcookie.php?theme=whateveryourthemehere" />
</body>
</html>
次に、onloadコールバックをbodyタグに追加します。ドキュメントが読み込まれるのは、画像が完全に読み込まれたとき、つまりCookieが他の2つのドメインに設定されたときだけです。 Onloadコールバック:
<head>
<script>
function loadComplete(){
window.location="http://domain1.com";//URL of domain1
}
</script>
</head>
<body onload="loadComplete()">
PHPファイルを次のように使用して、他のドメインにCookieを設定します。
<?php
if(isset($_GET['theme'])){
setcookie("theme", $_GET['theme'], time()+3600);
}
?>
これで、Cookieが3つのドメインに設定されました。
他の2つのドメインをiFrameに含めることができます。詳細については、「サードパーティのCookie」を検索してください。ただし、ブラウザの設定によっては、ユーザーがサードパーティのCookieを受け入れない場合があります。他にもいくつかのアイデアがあります: お気に入りのクロスドメインCookie共有アプローチは何ですか?