Php 销毁子目录中不工作的cookie

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

我想饼干可能有我不懂的地方。当我点击一个按钮时,我正试图破坏一个cookie,但cookie仍然存在。我知道Cookie的说明必须在html代码之前,所以我创建了一个没有html代码的新php页面logout.php:

<?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']);
}