php - 检测使用 setcookie 函数发送的所有 cookie

标签 php cookies header http-headers

我有以下 php 代码:

setcookie('bonjour', 'bonjour', time() + 3600); 
setcookie('aurevoir', 'aurevoir', time() + 3600);

print_r(apache_response_headers());

print_r($_COOKIE);

第一次显示:

Array
(
    [X-Powered-By] => PHP/5.5.0
    [Set-Cookie] => aurevoir=aurevoir; expires=Sat, 31-Aug-2013 10:27:06 GMT; Max-Age=3600
)
Array
(
)

第二个:

Array
(
    [X-Powered-By] => PHP/5.5.0
    [Set-Cookie] => aurevoir=aurevoir; expires=Sat, 31-Aug-2013 10:26:47 GMT; Max-Age=3600
)
Array
(
    [bonjour] => bonjour
    [aurevoir] => aurevoir
)

问题是,正如您所看到的,只有第二个/最后一个 cookie 存储在第一个数组的 Set-Cookie 中。那么,我如何使用 headers 数组检测是否设置了两个 cookie?

最佳答案

使用 headers_list() 函数,如下所示:

<?php 
setcookie('bonjour', 'bonjour', time() + 5); 
setcookie('aurevoir', 'aurevoir', time() + 5);


var_dump(headers_list());

哪些输出:

array (size=3)
  0 => string 'X-Powered-By: PHP/5.4.12' (length=24)
  1 => string 'Set-Cookie: bonjour=bonjour; expires=Sat, 31-Aug-2013 09:47:48 GMT' (length=66)
  2 => string 'Set-Cookie: aurevoir=aurevoir; expires=Sat, 31-Aug-2013 09:47:48 GMT' (length=68)

或者,您可以围绕 setcookie 函数构建一个包装器,并存储有关正在设置的每个 cookie 的记录,但我想以前的解决方案应该足够好了。

关于php - 检测使用 setcookie 函数发送的所有 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546654/

相关文章:

c++ - 给定一个源文件,有没有办法让 gcc 只返回直接包含的头文件列表?

c++ - SFML 2.1 和 Xcode 4.6.3 - "The specified SDK "当前 OS X“似乎没有安装所有必要的 header 。”

button - 标题中的全日历自定义按钮

php - 将值传递给隐藏的表单字段/解析数据

javascript - 在 JavaScript 中显示变量

java - Android:检查我的应用程序上的登录帐户

javascript - 基于多个元素的 click() 设置和删除 jQuery cookie

google-chrome - Ubuntu 重启后谷歌浏览器丢失 cookie

php - 如何将MySql代码转换为laravel代码?

php - WordPress:模板页面在哪里调用?