0

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

2 回答 2

2

If you run into a problem with a PHP function, double check all parameters and re-read the PHP manual about them.

The function in question is:

You wrote:

setcookie('betahomepage1', $hp_id, $expire , "/"   , "https://www.mtsbeta.com");
                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
          $name          , $value, $expire , $path , $domain 

The domain parameter is not a HTTP URI. It is just the Domain:

domain
The domain that the cookie is available to. Setting the domain to 'www.example.com' will make the cookie available in the www subdomain and higher subdomains. Cookies available to a lower domain, such as 'example.com' will be available to higher subdomains, such as 'www.example.com'. Older browsers still implementing the deprecated » RFC 2109 may require a leading . to match all subdomains.

于 2012-08-14T23:44:46.253 回答
0

PHP 中包含所有 cookie 的预定义变量被调用$_COOKIE(注意大写),请参阅手册中的页面

由于 PHP 中的变量区分大小写,因此$_cookie您要比较的变量将是NULL,除非在其他地方明确设置。

因此,您的 cookie 正在设置中,但您没有正确检索它。

此外,调试 cookie 的一个好方法是使用FireBug(或 Chrome 开发者工具);他们可以在浏览器中向您显示所有活动的 cookie。

如果您想确保在调试期间在 PHP 中设置了 cookie,您可以选择 a var_dump($_COOKIE),它将明确告诉您为当前请求设置了哪些 cookie。

于 2012-08-15T00:20:17.083 回答