【问题标题】:How to set a cookie for a domain in PHP?如何在 PHP 中为域设置 cookie?
【发布时间】:2012-01-28 12:12:35
【问题描述】:

我想通过 PHP 设置一个 cookie。场景是这样的:

域名是:example.com

子域 (my.example.com) 上有一个网页。我的代码是:

$value="I am looged in";
setcookie("TestCookie", $value,'','',".example.com");
echo "hello".$_COOKIE["TestCookie"];

但结果只是“你好” - cookie 未设置。

【问题讨论】:

标签: php cookies


【解决方案1】:

setcookie的实际调用的前两处更正:参数3(expired)应该是整数值(默认值为0);参数四应设置为'/',使cookie对所有子目录有效;因此,setcookie 调用应如下所示:

setcookie("TestCookie", $value, 0, '/', ".example.com");

然后它应该在第二次调用脚本时真正起作用。要了解为什么它第一次就不能工作,我们必须深入挖掘into how cookies work;基本上,Cookie 是从服务器发送到客户端的数据,服务器会说“向我发送此数据下次向我发送请求时”。这基本上就是 setcookie 的用途:当请求完成并且客户端已经接收并处理了页面时,将在客户端创建指定的 cookie;另一方面,$_COOKIE 保存所有已经在 cookie 中的值,以及客户端随请求一起传输的值 - 这意味着第一次调用脚本时,$_SESSION实际上仍然是空的,因为只有在客户端收到脚本输出后才会创建 cookie。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 2021-03-22
    • 2018-04-03
    • 2010-11-14
    • 2011-10-09
    • 2020-03-04
    相关资源
    最近更新 更多