使用setcookie时,域设置无法使用php

时间:2011-08-04 23:16:07

标签: php cookies

我在为其他特定域设置cookie时遇到问题,该域与生成cookie的网站域不同。

以下提供域名的代码不起作用:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/','www.domain.com', false);

当我将上述代码更改为此代码时,cookie将使用我的服务器域进行设置:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/');

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

不幸的是,如果设置cookie的网站与正在浏览的网站不同,这将无效。否则就没有什么可以阻止恶意的人设置随机cookie。您可以访问一些随机页面并将其覆盖所有Cookie,将您从登录的每个站点中注销,作为基本示例。

setcookie的domain参数用于指定与正在浏览的域相关的域,以允许它们访问cookie。例如,当您登录Google日历时,即使您可能正在http://calendar.google.com查看日历,Cookie也会设置为.google.com的域名,这意味着如果您转到http://mail.google.com ,您仍然会登录。如果日历程序将Cookie域设置为.calendar.google.com,那么您在访问http://mail.google.com时必须单独登录。

文档中提到了这些内容,但如果你不知道它想要说什么,它就相当不透明。 http://php.net/manual/en/function.setcookie.php