在php中设置cookie

时间:2012-08-14 23:38:13

标签: php cookies

我正在尝试设置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";   
}

2 个答案:

答案 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。

相关问题