我在设置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>
答案 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。