当cookie设置在不同的子域上时,如何从php读取cookie?

时间:2014-10-01 11:48:44

标签: php jquery cookies

我有2个子域名:' secure'和'下载'属于同一域:" 10.0.50.18"。

on'下载'我使用jQuery设置了一个cookie:

$.cookie("width", w, {domain: "10.0.50.18"});

on' secure',我正在尝试读取这样的Cookie:

$width = $_COOKIE["width"];

但它没有用。

任何人都可以帮忙吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

除非您在创建Cookie时指定,否则Cookie不会跨子域工作。你需要做这样的事情:

$.cookie("width", w, {domain: ".mydomain.com"});

这将允许mydomain.com的所有子域共享cookie。

答案 1 :(得分:0)

很抱歉,您无法以您尝试的方式使用来自不同域的Cookie。 你可以在这里阅读一些有趣的解决方案 Cross-Domain Cookies

答案 2 :(得分:0)

可以将Cookie设置为IP地址,您不能使用通配符。

domain .10.0.50.18 is not valid
domain 10.0.50.18 is valid

IP地址不像DNS域那样容易遵循组织边界。比Web服务器的IP地址少一个或一个的IP地址可能不一定位于同一组织中。出于安全原因,不允许在cookie的domain属性中使用任何形式的IP地址。这有效地消除了任何形式的IP地址的域属性的有用性。

来自http://www.ietf.org/rfc/rfc2109.txt

  

完全限定的主机名(FQHN)表示完全限定      主机的域名(FQDN)(即完全指定的域)      名称以.com或.uk)等顶级域名结尾,或者      主机的数字Internet协议(IP)地址。完全      合格的域名是首选; 使用数字IP地址      强烈劝阻