$ _ SERVER ['HTTP_COOKIE'] 和 $ _ COOKIE 之间有什么区别?
为什么 $ _ SERVER ['HTTP_COOKIE'] 未在PHP手册中记录?
我正在创建一个用于管理cookie的类,我想创建一个功能来销毁所有设置的cookie。我必须从$ _SERVER ['HTTP_COOKIE']变量中删除,例如:
public function destroy_all() {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, null, 1, $this->cookie_path);
}
}
或使用$ _COOKIE数组,如:
public function destroy_all() {
foreach($_COOKIE as $name => $cookie) {
setcookie($name, null, 1, $this->cookie_path);
}
}
答案 0 :(得分:1)
并非所有服务器都具有此全局变量$_SERVER['HTTP_COOKIE']
。在我的共享主机上,他们没有此变量可用。但是,$_COOKIE
变量通常可以保证可用。
答案 1 :(得分:1)
您不应该使用$_SERVER["HTTP_COOKIE"]
中的值。它没有记录,所以它可能不可靠。更多详情click here
。注意$_COOKIE
变量不会包含多个具有相同名称的cookie