我正在尝试设置 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";
}
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.
PHP 中包含所有 cookie 的预定义变量被调用$_COOKIE
(注意大写),请参阅手册中的页面。
由于 PHP 中的变量区分大小写,因此$_cookie
您要比较的变量将是NULL
,除非在其他地方明确设置。
因此,您的 cookie 正在设置中,但您没有正确检索它。
此外,调试 cookie 的一个好方法是使用FireBug(或 Chrome 开发者工具);他们可以在浏览器中向您显示所有活动的 cookie。
如果您想确保在调试期间在 PHP 中设置了 cookie,您可以选择 a var_dump($_COOKIE)
,它将明确告诉您为当前请求设置了哪些 cookie。