setcookie() 未在 Google Chrome 中设置 Cookie

2022-08-30 13:55:25

我正在浏览一些关于如何设置cookie的PHP教程。我注意到在FF4和IE9上成功设置了cookie,但是在Chrome(11.0.696.60)中没有设置。PHP 文件由 XAMPP(本地主机)提供。

我尝试了w3schools的例子:

<?php
setcookie("user", "Alex Porter", time()+3600);
?>

此站点(对于本地主机环境):

<?php
setcookie("username", "George", false, "/", false);
?>

提前致谢。


答案 1

禁用 IP 地址的 Cookie 是一项设计决策。另请参见:https://code.google.com/p/chromium/issues/detail?id=56211localhost

解决此问题的方法包括:

  • 设置本地域(例如,编辑以使用 )。/etc/hosts127.0.0.1 localhost.com
  • 使用 http://myproject.localhacks.com/(指向 127.0.0.1)。
  • 设置 Cookie 时使用空域值。

例如,在 PHP 中:

setcookie(
  $AUTH_COOKIE_NAME,
  $cookie_value,
  time() + cookie_expiration(),
  $BASE_DIRECTORY,
  null,
  false,
  true
);

此处的值指示不应设置域。null

注意:不设置域会阻止 Cookie 对子域可见。


答案 2

域应等于 NULL。

&应该给出一个到期日。即

setcookie("username", "George", time() + (20 * 365 * 24 * 60 * 60), "/", NULL);

推荐