繁体   English   中英

PHP Cookie将到期时间设置为无

[英]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参数以秒为单位。 Setcookie功能

除name参数之外的所有参数都是可选的。 您也可以用空字符串(“”)替换参数以跳过该参数。 因为expire参数是整数,所以不能使用空字符串跳过它,而是使用零(0)。

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

0表示如果你想让它“永不过期”使用很​​长时间,那么cookie应该在会话结束时到期。

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

例如那将是十年。

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

你问的是错误的问题。 没有办法设置cookie不会过期; 这不是PHP限制,它不是cookie规范的一部分(http://www.faqs.org/rfcs/rfc2965.html)。

你最好的选择是在将来使用一个日期。 例如,要设置一个在二十年后到期的cookie:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM