我在一个页面上设置了一个Cookie,并尝试在下一页上取消设置,我通过链接访问该页面。但是,当我刷新第二页F5时,cookie才会被取消。
为了测试,我在第一页上有链接和一些cookie设置,如下所示:
<?php
include("connect-db.php");
$id = "newuser";
setcookie("user_id", $id, time() + 31536000);
if (isset($_COOKIE["user_id"]))
echo "Welcome " . $_COOKIE["user_id"] . "!<br>";
else
echo "Welcome guest!<br>";
?>
<br>
<a href='next.php'>Next</a>
在下一页我有这个PHP代码:
<?php
header("Cache-Control: no-cache, must-revalidate, max-age=0"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Pragma: no-cache');
setcookie("user_id", "", time()-(60*60*24), "/");
echo "<br /> Welcome " . $_COOKIE["user_id"] . "!<br>";
?>
如何确保在第二页上取消设置cookie,或者重新获取页面?
答案 0 :(得分:2)
这取决于你想要做什么。如果您对客户端上的cookie有依赖关系,那么您可能希望使用客户端(JavaScript)取消设置它。如果依赖是在服务器上,那么很难知道你的问题是什么,因为你可以在你“取消设置”之后编写代码的第二部分而不依赖于cookie。
我不完全推荐这个,因为它可能不需要额外的页面加载,但你也可以强制发送标题。
if (isset($_COOKIE['user_id'])) {
setcookie(/* your params */);
header('Refresh: ' . $_SERVER['REQUEST_URI']);
exit;
}
答案 1 :(得分:-1)
您可以尝试在第二页
中使用以下代码setcookie(“user_id”,“”);
我希望你能解决问题。