我正在创建一个多语言网站,在用户登录后,我需要在所有域(在同一台服务器上)创建cookie:
example.com
example.de
example.it
我知道这个解决方案 - http://subinsb.com/set-same-cookie-on-different-domains(从 img 属性中调用 .php文件)但是有没有纯PHP解决方案?
我正在尝试解决 cURL 解决方案,但它不起作用:
$url = "http://www.example.de/createcookie.php?value=hashvar";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_exec($curl);
用户登录后,需要在当前域上创建cookie,然后调用(通过cURL)createcookie.php文件,该文件在其他域上创建cookie。
可以通过 cURL 或其他一些PHP函数(例如 get_file_contents )来实现这样吗?
所有域都放在同一台服务器上。
答案 0 :(得分:2)
我过去使用的解决方案是创建一个" session_access"或" cookie_access"所有站点都可以访问的数据库中的表,以查看是否可以创建会话/ cookie而无需另外登录。
...例如
答案 1 :(得分:1)
没有纯php 解决方案。您不能为其他域设置cookie,而不是为您提供响应的域。 Curl
和get_file_contents
不与用户的浏览器进行互动。设置cookie由处理服务器响应的浏览器执行。
但是,您可以重定向所有这些域并在每个后续设置之前设置Cookie,而不是从其他两个域(称为第三方域)提供图像(或其他文件类型)重定向(使用header("Location: url");
)
即。在example.com上登录后,您将重定向到:
然而,与在html中使用非阻塞第三方对象相比,这会带来更长的加载时间。