Установите cookie на нескольких доменах с помощью PHP или JavaScript

У меня есть 3 домена с одинаковой тематикой. Если кто-то выберет другую тему, я хочу, чтобы она распространялась на все 3 домена, чтобы его опыт оставался прежним.

Я планировал добиться этого, установив файл cookie на домен1, перенаправив на домен2, где установлен файл cookie, перенаправив на домен3, где установлен файл cookie, перенаправив обратно. Поскольку информация не нуждается в защите или защите, это будет работать нормально, без каких-либо проблем.

Я ненавижу идею 3 перенаправления просто для установки cookie в каждом домене и искал что-то более элегантное.


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


Ответы (2)


Делайте то, что делает Google. Да, Google проделывает тот же трюк для входа пользователя в YouTube и другие сервисы Google, которые находятся в разных доменах.

Создайте файл PHP, который устанавливает cookie для всех 3 доменов. Затем в домене, где будет устанавливаться тема, создайте файл HTML, который загрузит файл PHP, который устанавливает файлы 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 установлены в двух других доменах. Обратный вызов при загрузке:

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

setcookie.php

Мы устанавливаем файлы cookie на других доменах, используя файл PHP, например:

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

Теперь файлы cookie установлены на трех доменах.

Источник - Мой блог

person Subin    schedule 23.10.2013
comment
Мне это нравится, это более элегантно, и общее время установки cookie на всех сайтах значительно сокращается из-за отсутствия дополнительных перенаправлений. Спасибо - person steveo225; 23.10.2013

Вы можете включить два других домена в iFrames. Для получения дополнительной информации выполните поиск по запросу «сторонние файлы cookie». Однако в зависимости от настроек браузера пользователь может не принимать сторонние файлы cookie. Здесь есть еще несколько идей: Какой ваш любимый подход к совместному использованию файлов cookie между доменами?

person Jason Wood    schedule 23.10.2013