PHP Cookie未设置

时间:2012-01-17 05:30:25

标签: php cookies setcookie

我在设置Cookie时遇到问题。问题是我的cookie甚至没有被设置,我在下面设置了一个测试,看看它们是否被设置但是它们从未被设置。我甚至在我的浏览器中查看是否有任何设置,但我的网站没有任何内容。

我希望你帮我设置我的饼干。我不太清楚该怎么做。谢谢。

这是我的代码:

<?php 
session_start();

setcookie("ridArray","", time()+3600);

if (isset($_COOKIE['ridArray'])) {
    echo "ridArray is set.";    
}
?> 
<head>
</head>
<html> 
<body>
<?php
if (isset($_COOKIE['ridArray'])) {
    echo "ridArray is set.";    
} else { echo "not set"; } 
?> 
</body>
</html> 

1 个答案:

答案 0 :(得分:5)

问题来自SetCookie文档:

  

必须使用与设置相同的参数删除Cookie。如果value参数为空字符串或FALSE,并且所有其他参数与先前对setcookie的调用匹配,则将从远程客户端删除具有指定名称的cookie。这是通过将值设置为“已删除”并将到期时间设置为过去一年来实现的。

您正在将cookie值设置为空字符串(“”)。尝试:

setcookie("ridArray","not blank value", time()+3600);

另一个问题是,当您设置cookie时,它将不会出现在请求标头中(通过$ _COOKIE访问),直到下一页加载为止。这意味着当您第一次加载该页面时,将不会设置$ _COOKIE ['ridArray']。在后续加载时,它将被设置,并且每次都会重置。

首页加载,不会设置。刷新,它将被设置。

调试Cookie的最简单方法是使用Chrome的开发者工具或Firefox的FireBug,并观察SetCookie标头的响应标头,以及请求标头,以查看您的浏览器发送的Cookie。

相关问题