php - 如何抑制/删除 PHP session cookie

标签 php session cookies header http-headers

我需要抑制已设置的 session cookie header ,但我找不到任何方法来执行此操作。

为什么?
我需要制作一个由 PHP 脚本发送的图像,可供最终用户缓存;该图像用于跟踪接收者是否已阅读新闻通讯,因此如果请求图像,我知道新闻通讯已被阅读。我只需要知道新闻通讯第一次打开的时间,后续的请求可以忽略。问题是,即使我正确设置了 Expire 和 Cache-Control header ,每次用户打开新闻通讯时都会请求图像(仅用于跟踪的图像),基本上是因为用户没有缓存它。我用过这个tool了解为什么 URL 不可缓存,它说是因为发送了 cookie。

我想避免的是用户看到跟踪图像加载延迟。

所以我的网站初始化函数中有一个 session_start() ,我不想删除它,因为网站又大又复杂,并且进行了一些根本性的更改,例如仅启动 session 如果需要的话(我设想的解决方案之一)是不可取的。调用 session_start() 使用 PHPSESSID cookie 设置 Set-Cookie: header ,我需要将其删除。从 php.net 上的 header() 页面读取,我尝试使用这样的空值设置它

header('Set-Cookie:');
header('Set-Cookie:', true);
header('Set-Cookie: ');
header('Set-Cookie: ', true);

在调用session_write_close()之前和之后,但我得到的只是用户收到一个Set-Cookie: header ,没有任何值,与所写的完全一样在 header 函数参数中。

我必须说我仍在使用 PHP 5.2,因此我无法使用手册中看到的 header_remove() 函数以及 lighttpd 1.4.24。

编辑:所以,我用来检查标题的工具似乎不太好。我使用 curl --head 查看了标题,并看到了下面的标题。

HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.9
Set-Cookie: PHPSESSID=qn3ms55nvst2717e7b73qqu445; path=/
Last-Modified: Sun, 29 Mar 2009 21:53:36 GMT
ETag: "cb1dffff8c10db7b0a88794b1453cab8"
Expires: Sun, 20 Dec 2009 23:28:07 GMT
Cache-Control: private, max-age=2592000
Pragma: no-cache
Content-Type: image/png
Content-Length: 1322
Date: Fri, 20 Nov 2009 23:28:07 GMT
Server: lighttpd/1.4.24

如您所见,它设置了一个Pragma: no-cache。我用的工具说没有使用Pragma header,但是这是错误的。我尝试设置Pragma:cache,它使邮件客户端缓存图像。

我又发现了,也许无法取消设置 Set-Cookie header 是因为 lighttpd,因为我无法使用 header( 删除 Pragma header '杂注:')。期待 PHP 5.3。使用 Apache 的人可以确认上述 header 调用删除了 Pragma header 吗?

感谢 txyoji 的启发性评论:-)

目前看来这个问题只是为了确认lighttpd无法通过设置没有值的 header 来删除 header 。

最佳答案

尝试 header_remove('Set-Cookie');

关于php - 如何抑制/删除 PHP session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773386/

相关文章:

php - 如何根据与现有记录匹配的单个字段值覆盖表中的单个 MySQL 记录?

php - 使用 Eloquent 更新 MYSQL 中的产品数量

php - 我如何在 symfony Controller 中使用 Kint Debugger

python - PDF 打印受密码保护的页面(最好让 wkhtmltopdf 使用 cookie)

rest - 如何使用 POSTMAN 客户端发布凭据以创建基于 cookie 的 session

php - 第 1 行第 'budget' 列的数据被截断”

php - 如何在 php 中禁用 session ?

Python session 、cookie 和网络

java - session 超时时间

python-3.x - 为什么我无法将 cookie 上传到 Selenium?