web-dev-qa-db-ja.com

PHPまたはJavaScriptを使用して複数のドメインにCookieを設定します

同じテーマの3つのドメインがあります。誰かが別のテーマを選択した場合、私はそれを3つのドメインすべてに伝播して、彼らの経験が変わらないようにしたいと考えています。

Domain1にcookieを設定し、cookieが設定されているdomain2にリダイレクトし、cookieが設定されているdomain3にリダイレクトし、リダイレクトして戻すことで、これを実現することを計画していました。情報は安全または保護する必要がないため、これは実際に問題なく正常に機能します。

各ドメインにCookieを設定するためだけに3リダイレクトするのは嫌いで、もう少しエレガントなものを探していました。

17
steveo225

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()">

setcookie.php

PHPファイルを次のように使用して、他のドメインにCookieを設定します。

<?php
if(isset($_GET['theme'])){
   setcookie("theme", $_GET['theme'], time()+3600);
}
?>

これで、Cookieが3つのドメインに設定されました。

ソース-私のブログ

40
Subin

他の2つのドメインをiFrameに含めることができます。詳細については、「サードパーティのCookie」を検索してください。ただし、ブラウザの設定によっては、ユーザーがサードパーティのCookieを受け入れない場合があります。他にもいくつかのアイデアがあります: お気に入りのクロスドメインCookie共有アプローチは何ですか?

0
Jason Wood