我在为其他特定域设置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,'/');
非常感谢任何帮助!
答案 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