是否有直接的方法来测试当前请求中是否设置了cookie?我正在编写现有代码的扩展,因此我无法修改当前代码以添加$_COOKIE['something'] = $someValue;
之类的内容。不幸的是,只有setcookie被调用,而不会以任何其他方式记录事件。我需要在客户端收到标头之前知道,因为如果现有代码还没有这样做,我需要设置cookie。
答案 0 :(得分:0)
您是否尝试过使用 isset ?
if( ! isset($_COOKIE['something'])) {
$_COOKIE['something'] == $somevalue;
}
答案 1 :(得分:0)
这是我的蛮力"解决方案现在。不过,我希望能找到更好的方法。请注意,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;