我正在尝试为同一个网站设置两个Cookie。 (除了一个是HTTP,一个是HTTPS站点。)
$cookie_domain_http = parse_url(HTTP_SERVER);
$cookie_domain_https = parse_url(HTTPS_SERVER);
假设HTTP_SERVER包含http://www.somesite.com且HTTPS_SERVER包含https://ssl1.otherdomain.com,我使用以下内容。
setcookie("referrer_key",
$_GET['referrer'],
time() + 60*60*24*365,
$cookie_domain_http['path'],
$cookie_domain_http['host']); // Set the cookie for the non-HTTPS version.
if(ENABLE_SSL == "true") {
setcookie("referrer_key",
$_GET['referrer'],
time() + 60*60*24*365,
$cookie_domain_https['path'],
$cookie_domain_https['host']); // Set the cookie for HTTPs version.
}
现在第一个setcookie
正在设置会话cookie。但是,第二行不会导致它显示。
我如何使用此代码,特别是PHP来执行此操作。
答案 0 :(得分:1)
http://php.net/manual/en/function.setcookie.php
最后还有一个参数,您可以使用它来指定cookie是否安全。
if (ENABLE_SSL == "true")
setcookie("referrer_key",
$_GET['referrer'],
time() + 60*60*24*365,
$cookie_domain_https['path'],
'.somesite.com', // Parse out the base domain, and put it here with the leading "."
true); //this is the parameter to set specify a secure cookie
答案 1 :(得分:1)
您只能在一个域中设置一个cookie,即运行您的代码的域。您可以获得的最接近设置为somesite.com,在这种情况下,它将被发送到somesite.com的所有子域
您无法在同一段代码中的somesite.com和othersite.com上设置Cookie。
否则,没有什么可以阻止你为任意域添加cookie。