PHP Cookie 将到期时间设置为 none


PHP Cookie set expiry time to none

我正在设置一个cookie,但遇到了一些问题。目前 cookie 的格式是这样的:

setcookie("company_id", $company_id, 0, '/');

所以到期时间设置为 0 意味着 cookie 永远不会过期,但是当我试图不设置任何到期时间时,我在第三个参数中传递了一个空参数,如下所示:

setcookie("company_id", $_POST["company_id"], "", '/');

但是这不起作用,cookie没有得到,当我将空参数更改为0它而不是开始工作时。有什么建议吗?

expire 参数以秒为单位。设置饼干功能

除 name 参数之外的所有参数都是可选的。您也可以 将参数替换为空字符串 (") 以跳过该字符串 论点。由于 expire 参数是整数,因此无法跳过它 对于空字符串,请改用零 (0)。

因此,除非您希望它在会话结束时过期,否则您需要具有非零的值。

0 表示 cookie 应该在会话结束时过期,如果您希望它"永不过期"使用很长时间。

setcookie("TestCookie", $value, time()+3600*24*365*10, '/')

例如,那将是十年。

请记住,人们可以经常清除饼干。因此,您的内容可能会被删除。Cookie 也是特定于浏览器的,因此如果每次都需要存储在其中的数据,那么如果用户切换浏览器,除非您再次设置,否则将不再可用。

你问错了问题。无法将 cookie 设置为不过期;这不是PHP的限制,它只是不是cookie规范的一部分(http://www.faqs.org/rfcs/rfc2965.html)。

最好的办法是使用遥远的未来日期。例如,要设置一个在二十年后过期的 Cookie:

setcookie(
  "CookieName",
  "CookieValue",
  time() + (20 * 365 * 24 * 60 * 60)
);