php - Chrome不会删除cookie?

我有一个注销用户的脚本 (logout.php),它在 FF 和 IE 中运行良好,但在 Chrome 中,即使浏览器关闭后 cookie 仍然可用。

我已经用这段代码进行了测试:

logout.php

session_start();
$_SESSION['un'] = '';
$_SESSION['pw'] = '';
unset($_SESSION['un']);
unset($_SESSION['pw']);
setcookie("spf", "", time()-3600);
session_destroy();
echo "Cookie: ".$_COOKIE['spf']."<br />";
echo "Session: ".$_SESSION['un'];

尽管如此,在 Chrome 中它仍然会回显 spf 的内容。我做错了什么?

编辑:

在 FF 中我的测试页回应了这个:

Cookie: 

Session:

(例如,两者都留空)。

在 Chrome 中它是这样说的:

Cookie: {\"un\":\"test3333\",\"pw\":\"593c114983263124656dd6bb922b7bd8\"}

Session:

(例如 cookie 有内容, session 为空)。

最佳答案

你可以试试:

$_SESSION=array(); // assign an empty array to the session

session_unset();     // unset $_SESSION variable for the run-time, frees all session variables currently registered.  

INFO

然后:

session_destroy();   // destroy session data in storage

注意: session_destroy() 销毁与当前 session 关联的所有数据。它不会取消设置与 session 关联的任何全局变量,也不会取消设置 session cookie。要再次使用 session 变量,必须调用 session_start()。

为了用 session_destroy() 完全终止 session ,就像注销用户一样, session ID 也必须取消设置。如果使用 cookie 传播 session id(默认行为),则必须删除 session cookie。 setcookie() 可用于此目的。

取自: INFO

更新:

那我觉得你需要这个,注意spf是cookie的名字

setcookie ("spf", "", time() - 3600);

如果它是一个数组,将名称更改为 spf[one] ex:

setcookie ("spf[un]", "", time() - 3600);

看看HERE

https://stackoverflow.com/questions/16883704/

相关文章:

node.js - 为什么process.memoryUsage()不输出 Node 进程消耗的内存

math - 双轮廓 - 噪声函数的法向量

ruby-on-rails - 从复杂的 Rails 查询导出到 CSV

iphone - 媒体查询不适用于 iPhone 的邮件

python - 解析csv文件并使用python调用rest api

session - 如何禁止 Symfony 将 _sess 文件写入我的/tmp 目录

ruby-on-rails - 呈现带有错误和文件输入的表单

c# - 如何上传文件并将其保存在本地计算机的特定文件夹中?

asp.net - URL 重写出站规则和自定义错误页面

maven - 如何在 ftp 中部署 Maven Web 应用程序?