使用header()
来电直接发送Cookie标头是否可以?
我正在修补PHP中的http cookie机制,并希望(至少在最初阶段)尝试" raw"事情:))
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模块)文件)。
答案 0 :(得分:4)
考虑到Cookie只是HTTP标头,您当然可以使用 header()
功能发送它们。
但这是重新发明轮子(你必须自己处理所有可能性),因为PHP提供了setcookie()
功能。
但是,如果您想了解Cookie的工作原理,为什么不呢?
这可能很有趣; - )
答案 1 :(得分:2)
PHP无论如何都不会关心。设置cookie只意味着发送标头。 PHP的网站没有任何其他内容(除非您正在谈论会话,但显然您不是)。你可以发送你想要的任何原始标题,PHP不会关心。如果您发送正确的标头,并且客户端在下一个请求中返回cookie,PHP将正确解析为$_COOKIE
数组。这就是它的全部内容。
答案 2 :(得分:1)
绝对可以。使用原始标头发送的正确Cookie与通过set_cookie()
发送的Cookie之间没有区别。
答案 3 :(得分:0)
不是
请参阅问题的“编辑”部分。