我是饼干和类似的东西。
我需要从像mydomain.com/folder/page.php
这样的文件夹中的页面设置一个cookie到整个域。之前我必须这样做,并将其重定向到另一个设置cookie的页面mydomain.com/another.php
。事情是现在我不应该重定向页面,因为一些数据来自表格和其他东西,所以我怎么能这样做?
setcookie("name", $name, time()+31536000);
只会为folder
内的网页设置Cookie,我尝试了setcookie("name", $name, time()+31536000,'/','mydomain.com');
但是没有效果。
答案 0 :(得分:11)
这段代码肯定有效:
setcookie("name", $value, time()+31536000,'/');
您应该注意mydomain.com
与www.mydomain.com
或sub.mydomain.com
不同。
除此之外,请注意$value
的值应为字符串。
答案 1 :(得分:1)
@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可用的域。要在example.com的所有子域(包括example.com本身)上提供cookie,您可以将其设置为“.example.com”。虽然有些浏览器会接受没有初始化的cookie。»RFC 2109要求包含它。将域设置为“www.example.com”或“.www.example.com”将使cookie仅在www子域中可用。