4

我是饼干之类的初学者。

我需要从文件夹内的页面(如mydomain.com/folder/page.php. 我之前必须这样做,然后我完成了重定向到另一个mydomain.com/another.php设置 cookie 的页面。现在的问题是我不应该重定向页面,因为一些数据来自表单和其他东西,那么我该怎么做呢?

setcookie("name", $name, time()+31536000);只会为里面的页面设置cookies folder,我试过setcookie("name", $name, time()+31536000,'/','mydomain.com');了,但没有用。

4

2 回答 2

14

这段代码绝对有效:

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

您应该注意mydomain.comwww.mydomain.comor不同sub.mydomain.com

除此之外,请注意 的值$value应该是一个字符串。

于 2011-04-07T22:08:41.343 回答
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 可用的域。要使 cookie 在 example.com 的所有子域(包括 example.com 本身)上可用,您需要将其设置为“.example.com”。虽然有些浏览器会接受不带首字母 . 的 cookie,但 » RFC 2109 要求包含它。将域设置为“www.example.com”或“.www.example.com”将使 cookie 仅在 www 子域中可用。

于 2011-04-07T22:09:49.583 回答