2011-01-25 126 views
0

我有创建使用set_cookie这样的cookie值的页面:问题饼干

setcookie("is_voted","1",time()+60*60*24*10,"/~poll/","spacepower.tv"); 

但使用$ _COOKIE数组

如何解决这个问题我不能让这个cookie值问题?

+3

请提供一些代码。 – eykanal 2011-01-25 19:13:59

+0

如果您在设置cookie的同一脚本中使用`$ _COOKIE`,则您没有获得任何值,因为cookie已在该脚本中注册,并且仅在第一次运行后才可用。 – Shoe 2011-01-25 19:24:40

回答

0

我遇到了同样的问题。根据PHP手册:

饼干不会成为可见,直到 到的网页上 饼干应该是可见的未来负载。要测试 ,如果cookie已成功设置,则在cookie过期之前, 将在下一个加载 页面上检查cookie。到期 时间通过expire参数设置。 调试 cookie的好方法是简单地调用 print_r($ _ COOKIE);.

基本上,$ _COOKIE superglobal只在脚本第一次运行时更新。如果您设置了新的cookie,它将不会立即在$ _COOKIES中可用。您必须启动脚本才能看到更新的$ _COOKIE值。如果你没有看到他们,然后,你有一个问题。

0

根据php.net:

Cookies是HTTP头的一部分,所以setCookie方法之前的任何输出被发送到浏览器()必须被调用。

当他们说任何输出之前,他们的意思是任何输出。如果在<?php ?>块之外有空白,包括空行,则会导致发送标头并且不会设置cookie。