我正在使用这个PHP代码并尝试设置cookie,如下所示:
setcookie("_GuestID",$userID,time() + (20 * 365 * 24 * 60 * 60));
我发现 cookie 在关闭浏览器后就会过期。我想让它持续很长时间。我能做什么?
如前所述,检查 cookie 是否确实在您的浏览器中设置(您的语法看起来正确)。
Cookie 只会在您设置它们的情况下保留。我一直使用一年作为整数期,除非有特定的到期要求(通常要短得多)。
使用 strtotime 函数使它们更易于阅读:
setcookie( "cookieName1", $value1, strtotime( '+1 year' ) );
setcookie( "cookieName2", $value2, strtotime( '+30 days' ) );
在 setcookie 手册页上有很多如何使用它们的例子,值得花时间阅读。
没有特殊的方法来设置持久性 cookie。这与设置普通 cookie 的方式相同。具有到期日期的 Cookie 称为持久性。
让我们更好地理解饼干...
有两种不同类型的 Cookie - 会话 Cookie 和持久性 Cookie。
- 如果 Cookie 不包含到期日期,则将其视为会话 Cookie。会话 Cookie 存储在内存中,从不写入磁盘。当浏览器关闭时,从此以后,cookie将永久丢失。
- 如果 Cookie 包含到期日期,则将其视为持久性饼干。在到期日指定的日期,饼干将从磁盘中删除
$cookie_name = "Name"; $cookie_value = "Amitesh"; setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
使用 strtotime 函数使它们更易于阅读:
setcookie( "cookieName1",123545,time()+(strtotime( '+1 year' )) );