【问题标题】:How to detect cookie in specific domains using $_COOKIE or any other way如何使用 $_COOKIE 或任何其他方式检测特定域中的 cookie
【发布时间】:2015-03-03 23:52:47
【问题描述】:

大家好,这与我之前发布的问题有点相似。但现在我发现了它背后的问题......当我使用称为 cookieset.php 的脚本设置 cookie 时

setcookie("atid", 1234, time() + 60 * 60 * 24 * 365, "/", ".mydomain.com");

并显示在浏览器中

Name    atid
Content 1234
domain  mydomain.com

在另一个例子中,我以这种方式设置了一个 cookie

setcookie('atid', '1234', time() + 60 * 60 * 24 * 365, "/", "localhost");

并显示在浏览器中

Name    atid
Content 1234
domain  localhost

但是当我尝试像这样从另一个脚本中检索它时

echo 'value is: ' . $_COOKIE['atid'];

只有当我通过将域名指定为 localhost 创建 cookie 时才会显示正确的值,但是当我提供时,我的特定域名 $_COOKIE['atid']; 不会检测到 cookie 但会出现错误

undefnied index: atid in.........

谁能帮我检测我域名上的cookie

【问题讨论】:

  • 为什么这个问题有问题

标签: php cookies


【解决方案1】:

Cookie 存储在客户端,即浏览器上。 cookie 也是特定于域的,子域可以访问父域的 cookie。 例如:如果您为域 test.com 创建了一个 cookie,那么 www.test.com、demo.test.com 等可以访问该 cookie。

您无法使用您的域名访问 cookie 的原因是,您可能已经使用 localhost 创建了 cookie,即您的第二个代码 setcookie('atid', '1234', time() + 60 * 60 * 24 * 365, "/", "localhost"); 并尝试从您的域名访问它。从上面的代码中删除 localhost,然后尝试从您的域名访问它。

使用此代码:

setcookie('atid', '1234', time() + 60 * 60 * 24 * 365, "/");

如果问题仍然存在,请告诉我。

【讨论】:

  • 感谢您的回复,这会在 localhost 中再次创建 cookie,即使我只创建 mydomain cookie 也会出现问题,$_COOKIE 不会检测到我的 cookie
猜你喜欢
  • 1970-01-01
  • 2012-07-11
  • 2010-09-28
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
相关资源
最近更新 更多