PHP读取另一个域上的cookie

时间:2010-05-27 09:37:46

标签: php cookies

我有两个域名。一个域包含登录脚本。它在登录时会创建一个cookie。另一个域有一个URL缩短器。

因此,在具有URL Shortener脚本的第二个域上有一个名为session.php的文件。通常我使用$_COOKIE['sessionid']来获取会话ID并使用数据库进行匹配。

如何立即获取会话ID?我尝试过几种方法,但没有一种能解决我的问题。

6 个答案:

答案 0 :(得分:14)

出于明显的安全原因,您无法读取属于其他域的Cookie。你可以跨子域进行。

为什么不将会话ID附加到转发的URL?

答案 1 :(得分:4)

您是否考虑过使用SSO?

http://www.jasig.org/cas

http://en.wikipedia.org/wiki/Single_sign-on

我们在工作中使用它,真棒!这意味着我们不必担心这些类型的问题。

答案 2 :(得分:3)

Cookies由浏览器发送,仅发送到域,Cookie设置为。

你可以做的事情并不多(意思是没有;)。

但是,如果您的域名是两个不同的子域名(例如login.yourdomain.comshortener.yourdomain.com),您只需相应地设置域名,以使Cookie对所有子域名有效。
在这种情况下,它将是.yourdomain.com

您可能需要阅读setcookie()的文档。


如果你清楚地描述你想要完成的事情,也许会更好。可能还有另一个不涉及cookie的解决方案。

答案 3 :(得分:1)

从登录页面设置cookie时 像这样将cookie设置为整个域

setcookie("c","value",time()*3600*24,"/");

通过这种方式,您可以将cookie设置为整个域。

答案 4 :(得分:0)

您无法从其他域读取Cookie 虽然有几种方法可以传递会话ID。您可以搜索SO以查找cross-domain authorization

最简单的方法是通过查询字符串传递会话ID

答案 5 :(得分:0)

你做不到。 Cookie绑定到单个域。您可以在多个子域中使用cookie。