使用PHP或JavaScript在多个域上设置cookie

ste*_*225 15 javascript php cookies setcookie

我有3个主题相同的域名.如果有人选择不同的主题,我希望它在所有3个域中传播,以便他们的体验保持不变.

我计划通过在domain1上设置cookie,重定向到设置了cookie的domain2,重定向到设置了cookie的domain3,重定向回来来实现此目的.由于信息不需要是安全的或受到保护的,因此无需任何实际问题即可正常工作.

我讨厌3重定向只是为了在每个域上设置一个cookie,并且正在寻找更优雅的东西.

Sub*_*bin 35

做谷歌正在做的事情.是的,谷歌正在采用同样的方法将用户登录到YouTube和其他不同域名的Google服务.

创建一个PHP文件,在所有3个域上设置cookie.然后在主题要设置的域上,创建一个HTML文件,该文件将加载在其他2个域上设置cookie 的PHP文件.例:

<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>
Run Code Online (Sandbox Code Playgroud)

然后在body标签上添加onload回调.只有当图像完全加载时才会加载文档,即在其他2个域上设置cookie时.Onload回调:

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

setcookie.php

我们使用这样的PHP文件在其他域上设置cookie:

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

现在cookie设置在三个域上.

来源 - 我的博客

  • 我喜欢这个,它更优雅,并且通过没有额外的重定向,显着减少了在所有站点上设置cookie的总时间.谢谢 (2认同)