问题饼干
问题描述:
我有创建使用set_cookie这样的cookie值的页面:问题饼干
setcookie("is_voted","1",time()+60*60*24*10,"/~poll/","spacepower.tv");
但使用$ _COOKIE数组
如何解决这个问题我不能让这个cookie值问题?
答
我遇到了同样的问题。根据PHP手册:
饼干不会成为可见,直到 到的网页上 饼干应该是可见的未来负载。要测试 ,如果cookie已成功设置,则在cookie过期之前, 将在下一个加载 页面上检查cookie。到期 时间通过expire参数设置。 调试 cookie的好方法是简单地调用 print_r($ _ COOKIE);.
基本上,$ _COOKIE superglobal只在脚本第一次运行时更新。如果您设置了新的cookie,它将不会立即在$ _COOKIES中可用。您必须启动脚本才能看到更新的$ _COOKIE值。如果你没有看到他们,然后,你有一个问题。
答
根据php.net:
Cookies是HTTP头的一部分,所以setCookie方法之前的任何输出被发送到浏览器()必须被调用。
当他们说任何输出之前,他们的意思是任何输出。如果在<?php ?>
块之外有空白,包括空行,则会导致发送标头并且不会设置cookie。
请提供一些代码。 – eykanal 2011-01-25 19:13:59
如果您在设置cookie的同一脚本中使用`$ _COOKIE`,则您没有获得任何值,因为cookie已在该脚本中注册,并且仅在第一次运行后才可用。 – Shoe 2011-01-25 19:24:40