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


Set a cookie to the entire domain from a page inside a folder

我是饼干之类的乞丐。

我需要从像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.comsub.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子域名中可用。