Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从多个域获取cookie_Php_Session_Cookies_Curl - Fatal编程技术网

PHP从多个域获取cookie

PHP从多个域获取cookie,php,session,cookies,curl,Php,Session,Cookies,Curl,我在main.com上设置了cookies,但我需要从my domain2.com的其他站点获取这些cookies,如何使用curl或其他方法来实现这一点 这是我在domain2.com/get.php中的代码: $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://main.com'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); curl_setopt($curl,

我在main.com上设置了cookies,但我需要从my domain2.com的其他站点获取这些cookies,如何使用curl或其他方法来实现这一点

这是我在domain2.com/get.php中的代码:

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'http://main.com');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($curl, CURLOPT_HEADER, true);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$data = curl_exec($curl);
curl_close($curl);

preg_match_all('#Set-Cookie: (.*);#U', $data, $matches);   
$cookies = implode(';', $matches[1]);

echo $cookies;

有可能吗?

这是不可能的,因为。浏览器永远不会将main.com cookies发送到domain2.com,cURL将充当访问main.com的新HTTP客户端;它会得到新的饼干,但它们与你的访客没有任何关系

要进行跨域会话,您需要访问一台服务器以在两台服务器上建立会话。例如,当用户访问main.com时,HTML输出包含一个空图像,指向
http://domain2.com/setCookie?sess=
。domain2.com上的脚本将设置会话cookie,结果是客户端在两个域上都有相同的会话cookie。然后,域可以使用后端请求(如果不在同一台计算机上)来共享信息


跨域会话管理往往很混乱,而且充满了警告。寻找经过良好测试的解决方案,而不是自己设计。

好的,谢谢!我问是因为我想这么做