确定是否已设置Cookie

时间:2015-05-28 14:29:08

标签: php

是否有直接的方法来测试当前请求中是否设置了cookie?我正在编写现有代码的扩展,因此我无法修改当前代码以添加$_COOKIE['something'] = $someValue;之类的内容。不幸的是,只有setcookie被调用,而不会以任何其他方式记录事件。我需要在客户端收到标头之前知道,因为如果现有代码还没有这样做,我需要设置cookie。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用 isset

if( ! isset($_COOKIE['something'])) {
    $_COOKIE['something'] == $somevalue;
}

答案 1 :(得分:0)

这是我的蛮力&#34;解决方案现在。不过,我希望能找到更好的方法。请注意,headers_list()获取将作为响应的一部分发送到浏览器的标头, <由<发送的标头< / em>请求期间的浏览器。

foreach (headers_list() as $header) {
    list($k, $v) = explode(': ', $header, 2);

    if (strtolower($k) != 'set-cookie') {
        continue;
    }

    $name = explode('=', $v, 2)[0];
    if ($name == $cookieName) {
        return true;
    }
}

return false;