我正在尝试设置Cookie,但它没有被设置。
$hp = explode('=', $hp);
$shp = $hp[0];
echo $hp_id=$hp[1];
if(empty($_cookie['betahomepage1'])) {
setcookie('betahomepage1',$hp_id,$expire,"/");
echo "cookie not set";
} else {
echo "cookie is set";
}
答案 0 :(得分:2)
如果您遇到PHP函数问题,请仔细检查所有参数并重新阅读有关它们的PHP手册。
有问题的功能是:
您写道:
setcookie('betahomepage1', $hp_id, $expire , "/" , "https://www.mtsbeta.com");
^^^^^^^^^^^^^^^^^^^^^^^^^
$name , $value, $expire , $path , $domain
域参数不是 HTTP URI。它只是领域:
<强>域强>
Cookie可用的域。将域设置为'www.example.com'
会使cookie在www子域和更高的子域中可用。较低的域(例如“example.com”)可用的Cookie可用于更高的子域,例如'www.example.com'
。仍旧实施已弃用的» RFC 2109的旧版浏览器可能需要领先。匹配所有子域。
答案 1 :(得分:0)
PHP中包含所有cookie的预定义变量称为$_COOKIE
(注意大写),see the page in the manual。
As variables in PHP are case sensitive,您要比较的$_cookie
变量将为NULL
,除非明确设置在其他位置。
因此,您的Cookie正在设置中,但您没有正确检索它。
此外,调试Cookie的一种好方法是使用FireBug(或Chrome开发人员工具);他们可以在浏览器中显示所有活动的cookie。
如果你想确保在调试期间在PHP中设置了一个cookie,你可以选择var_dump($_COOKIE)
,它将明确地告诉你为当前请求设置了哪些cookie。