我是饼干之类的乞丐。
我需要从像mydomain.com/folder/page.php
这样的文件夹内的页面设置一个cookie到整个域。我以前必须这样做,我把它重定向到另一个设置cookie的页面mydomain.com/another.php
。现在的问题是,我不应该重定向页面,因为一些数据来自一个表单和其他东西,我怎么能做到这一点呢?
setcookie("name", $name, time()+31536000);
将设置cookie仅为folder
内的页面,我尝试了setcookie("name", $name, time()+31536000,'/','mydomain.com');
,但它没有工作。
这段代码肯定有效:
setcookie("name", $value, time()+31536000,'/');
您应该注意mydomain.com
不同于www.mydomain.com
或sub.mydomain.com
。
除此之外,请注意$value
的值应该是一个字符串
@SPL_Splinter:确保在任何输出之前设置cookie。例如:
<?php
$name = 'Some name';
setcookie("name", $name, time() + 31536000, '/', '.mydomain.com');
if (isset($_COOKIE['name']))
{
echo $_COOKIE['name'];
}
?>
从http://php.net/manual/en/function.setcookie.php
cookie可用的域。要使cookie在example.com的所有子域(包括example.com本身)上可用,则将其设置为"。example.com"。虽然有些浏览器会接受没有初始的.的cookie,但是RFC 2109要求包含它。将域名设置为'www.example.com'或'.www.example.com'将使cookie仅在www子域名中可用。