gpt4 book ai didi

php - 销毁在子目录中不起作用的cookie

转载 作者:行者123 更新时间:2023-12-04 18:02:52 25 4
gpt4 key购买 nike

我想我可能对 cookie 不了解。当我点击一个按钮但 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'); ?>

我用一个简单的按钮从 index.php 调用页面:

<input type="button" id="ButSignout" value="Sign out" onclick="window.location.href='pages/logout.php'" />

我做了一些测试,php 页面加载良好,如果我尝试直接从 index.php 中删除 cookie,它会起作用。我错过了什么?提前致谢。


Cookie 是用以下方法创建的:

setcookie('pseudocookie','Pseudo cookie',time()+$expire, null, null, false, true);

当我在没有 header 的 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']);
}

但是当我回到打印 cookie 的 index.php 时,它显示了他的先前值。似乎在重新加载 index.php 时 cookie 会自动获取其先前的值,尽管 index.php 代码中没有 setcookie...

最佳答案

http://php.net/manual/en/function.setcookie.php

我认为问题可能出在您创建 cookie 的方式上。您使用了 null $path 而不是 /,因此该 cookie 可能无法在 /pages 上使用,因此您的 if (isset($_COOKIE['pseudocookie'])) 条件在 /pages/logout.php 中失败。

您可以通过在 if isset 中回显来验证这一点。

关于php - 销毁在子目录中不起作用的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com