$ _SERVER ['HTTP_COOKIE']和$ _COOKIE

时间:2015-10-31 09:14:21

标签: php cookies destroy

$ _ 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);
    }
}

2 个答案:

答案 0 :(得分:1)

并非所有服务器都具有此全局变量$_SERVER['HTTP_COOKIE']。在我的共享主机上,他们没有此变量可用。但是,$_COOKIE变量通常可以保证可用。

答案 1 :(得分:1)

您不应该使用$_SERVER["HTTP_COOKIE"]中的值。它没有记录,所以它可能不可靠。更多详情click here 。注意$_COOKIE变量不会包含多个具有相同名称的cookie