【发布时间】:2011-03-31 12:00:21
【问题描述】:
可以直接用header()调用发送cookie头吗?
我正在修改 PHP 中的 http cookie 机制,并希望(至少最初)尝试“原始”的东西 :)
Brad Christie's 对"php-how-to-stringify-array-and-store-in-cookie" 的回答假设是这样,但是是否有关于该主题的某种官方来源(或者至少是众所周知的做法)?
提前感谢您澄清主题。
[编辑:重要通知]
我发现一个有趣的事情是,调用header('Set-Cookie: ...'); 可以有效地防止任何以前随setcookie('...'); 提供的cookie 被发送,至少在我的机器上是这样(PHP 5.3.5、Apache 2.2.17、WinXP SP2)。这是功能/错误(?)还是违反 PHP 语义/规则的结果,我不知道。
分析 PHP .c 源可能会带来答案(可能应该查看 head.c(header()、setcookie() 等)和 mod_php5.c(Apache 模块)文件)。
【问题讨论】:
-
这可能违反德国法律。
-
@Álvaro G. Vicario 怎么样?太严格了?
-
附带问题:终于有真正的 cookie 规范了吗?
-
@Alvaro 我会说 RFC 2965 是“规范”——ietf.org/rfc/rfc2965.txt
-
@mlvljr manual 表示默认情况下,对该函数的调用将替换任何先前具有相同名称的标头。这可能是它覆盖使用
setcookie()设置的任何先前值的原因。你试过header('Set-Cookie: ...', false);吗?
标签: php cookies header http-headers