html总是从链接中获取新页面

时间:2013-02-24 15:13:41

标签: php javascript cookies page-refresh

我在一个页面上设置了一个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,或者重新获取页面?

2 个答案:

答案 0 :(得分:2)

这取决于你想要做什么。如果您对客户端上的cookie有依赖关系,那么您可能希望使用客户端(JavaScript)取消设置它。如果依赖是在服务器上,那么很难知道你的问题是什么,因为你可以在你“取消设置”之后编写代码的第二部分而不依赖于cookie。

我不完全推荐这个,因为它可能不需要额外的页面加载,但你也可以强制发送标题。

if (isset($_COOKIE['user_id'])) {
    setcookie(/* your params */);
    header('Refresh: ' . $_SERVER['REQUEST_URI']);
    exit;
}

答案 1 :(得分:-1)

您可以尝试在第二页

中使用以下代码

setcookie(“user_id”,“”);

我希望你能解决问题。