Php 销毁子目录中不工作的cookie
我想饼干可能有我不懂的地方。当我点击一个按钮时,我正试图破坏一个cookie,但cookie仍然存在。我知道Cookie的说明必须在html代码之前,所以我创建了一个没有html代码的新php页面logout.php:Php 销毁子目录中不工作的cookie,php,cookies,destroy,Php,Cookies,Destroy,我想饼干可能有我不懂的地方。当我点击一个按钮时,我正试图破坏一个cookie,但cookie仍然存在。我知道Cookie的说明必须在html代码之前,所以我创建了一个没有html代码的新php页面logout.php: <?php if (isset($_COOKIE['pseudocookie'])) { setcookie('pseudocookie', '', time()-300); } if(session_id() == '') { session_sta
<?php
if (isset($_COOKIE['pseudocookie'])) {
setcookie('pseudocookie', '', time()-300);
}
if(session_id() == '') {
session_start();
}
session_destroy();
session_unset();
header('Location: ../index.php'); ?>
当我在logout.php中尝试这段代码而不使用头时,我可以看到打印的cookie的新值
if (isset($_COOKIE['pseudocookie'])) {
//setcookie('pseudocookie', '', time()-300);
echo "test";
setcookie('pseudocookie','Cookie cookie',time()+3600);
echo $_COOKIE['pseudocookie'];
unset($_COOKIE['pseudocookie']);
}
但是当我回到index.php打印cookie时,它显示了他的先前值。重新加载index.php时,cookie似乎会自动获取其以前的值,尽管index.php代码中没有setcookie…
我相信问题可能来自你制作饼干的方式。您使用了null
/
,因此cookie可能在/pages
上不可用,因此您的如果(isset($\u cookie['pseudocookie')
条件在/pages/logout.php
中失败
您可以通过在if-isset内回音来验证这一点。您是如何创建cookie的?(显示该代码)setcookie('pseudocookie','pseudocookie',time()+expire,null,null,false,true)$expire是一个时间变量(int),我已经尝试过了,但为了确保我只是再次尝试过:我可以在isset测试中看到回音,但cookie仍然没有被删除。我只是尝试在没有任何参数的情况下创建cookie,但没有成功。然后问题恰恰相反。您只为pages目录而不是/目录设置cookie。在两个setcookie调用中都使用
/
,应该可以正常工作
setcookie('pseudocookie','Pseudo cookie',time()+$expire, null, null, false, true);
if (isset($_COOKIE['pseudocookie'])) {
//setcookie('pseudocookie', '', time()-300);
echo "test";
setcookie('pseudocookie','Cookie cookie',time()+3600);
echo $_COOKIE['pseudocookie'];
unset($_COOKIE['pseudocookie']);
}