从文件夹内的页面将cookie设置为整个域

时间:2011-04-07 22:01:36

标签: php setcookie

我是饼干和类似的东西。

我需要从像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');但是没有效果。

2 个答案:

答案 0 :(得分:11)

这段代码肯定有效:

setcookie("name", $value, time()+31536000,'/');

您应该注意mydomain.comwww.mydomain.comsub.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子域中可用。