如何在php中创建cookie以存在于不同的域中

如何在php中创建cookie以存在于不同的域中,php,single-sign-on,setcookie,Php,Single Sign On,Setcookie,我试图弄清楚如何使用php函数setcookie()在域X中设置cookie并存在于域Y中,这样我就可以完成单点登录。我想我遗漏了什么,这是我的代码: 在域X上并使用以下代码时,它成功创建了一个cookie,域设置为X,路径设置为/ setcookie('ssisid', $authentication['session']['session_id'], time() + 3600, '/'); setcookie('ssiid',$authentication['session']['sess

我试图弄清楚如何使用php函数setcookie()在域X中设置cookie并存在于域Y中,这样我就可以完成单点登录。我想我遗漏了什么,这是我的代码:

在域X上并使用以下代码时,它成功创建了一个cookie,域设置为X,路径设置为/

setcookie('ssisid', $authentication['session']['session_id'], time() + 3600, '/'); setcookie('ssiid',$authentication['session']['session_id'],time()+3600,'/'); 当我尝试转到域Y时,cookie未设置

当我尝试将域Y添加到代码中时:

setcookie('ssisid', $authentication['session']['session_id'], time() + 3600, '/', 'http://www.example.com'); setcookie('ssiid',$authentication['session']['session_id'],time()+3600,'/','http://www.example.com'); 如果example.com是我的站点的占位符,则两个域上都没有创建cookie


我错过了什么?

我发现了。我的第一个代码只有路径是正确的。问题是我当时处于Chrome隐姓埋名模式。我知道这一点,并且我假设所有处于匿名模式的标签都是同一个会话的一部分,并且能够传递cookies,但我猜不会。

你看过这篇文章吗?->您是否尝试过从域中删除
http://
?@DampeS8N-是的,我只在没有http://的情况下添加了http://init@MarcoMura-我没有使用任何iFrame,不确定这是否有区别。如何判断站点是否不允许跨浏览器cookie?我连接到的站点应该能够接受这些cookie,因为在他们的API文档中,它说它们会接受。这是一个回答,它说可以用iframe/javascript完成。也就是说,请记住,据我所知,cookie存储在客户端而不是服务器端=),因此您需要在客户端正确创建cookie^_^