Задайте бисквитка на множество домейни с PHP или JavaScript

Имам 3 домейна, които са еднакви по тематика. Ако някой избере различна тема, искам тя да се разпространи във всичките 3 домейна, така че изживяването им да остане същото.

Планирах да постигна това, като задам бисквитка на домейн1, пренасоча към домейн2, където е зададена бисквитката, пренасочи към домейн3, където е зададена бисквитката, пренасочи обратно. Тъй като информацията не трябва да бъде защитена или защитена, това ще работи добре без реални проблеми.

Мразя идеята 3 пренасочвания само за задаване на бисквитка на всеки домейн и търсех нещо малко по-елегантно.


person steveo225    schedule 23.10.2013    source източник


Отговори (2)


Правете това, което Google прави. Да, Google прави същия трик, за да влезе в YouTube и други услуги на Google, които са в различни домейни.

Създайте PHP файл, който задава бисквитката на всичките 3 домейна. След това в домейна, където ще се зададе темата, създайте HTML файл, който ще зареди PHP файла, който задава бисквитка в другите 2 домейна. Пример:

<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 таг. Документът ще се зареди само когато изображенията се заредят напълно, т.е. когато бисквитките са зададени на другите 2 домейна. Зареждане на обратно повикване:

<head>
   <script>
   function loadComplete(){
      window.location="http://domain1.com";//URL of domain1
   }
   </script>
</head>
<body onload="loadComplete()">

setcookie.php

Задаваме бисквитките на другите домейни, като използваме PHP файл като този:

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

Сега бисквитките са зададени в трите домейна.

Източник - Моят блог

person Subin    schedule 23.10.2013
comment
Харесва ми това, по-елегантно е и общото време за задаване на бисквитката на всички сайтове е значително намалено, като няма допълнителни пренасочвания. Благодаря - person steveo225; 23.10.2013

Можете да включите другите два домейна в iFrames. За повече информация потърсете „бисквитки на трети страни“. Въпреки това, в зависимост от настройките на браузъра, потребителят може да не приеме бисквитки на трети страни. Тук има някои други идеи: Кой е любимият ви подход за споделяне на бисквитки между домейни?

person Jason Wood    schedule 23.10.2013