设置Cookie过期日期

3

这是我使用的代码,它可以强制让Cookie在90天后过期:

setcookie("WHMCSAffiliateID", $aff, time()+90*24*60*60);

如果我想使cookie永不过期,我需要将这行代码改成什么?

可能是重复问题 https://dev59.com/zHA75IYBdhLWcg3wdIp0 - Elbek
2个回答

0

怎么样?

$year = 365*86400;
setcookie("WHMCSAffiliateID", $aff, time()+100*$year);

?

一百年显然太长了,两年应该足够了。或者只用一年。如果您必须绝对确定并且永远不更改代码,则可以使用十年。


0

无法将cookie设置为永不过期。但是,如果您定期更新cookie,则它们可以有效地永远存在。

个人而言,我喜欢将cookie设置为30天,并定期更新它们。做到这一点的一种方法可能是:

setcookie("WHMCSAffiliateID",$add,time()+30*24*60*60);
setcookie("Renew-cookies","1",time()+10*24*60*60);

然后在每个页面加载时:

if( isset($_COOKIE['WHMCSAffiliateID']) && !isset($_COOKIE['Renew-cookies'])) {
    setcookie("WHMCSAffiliateID",$_COOKIE['WHMCSAffiliateID'],time()+30*24*60*60);
    setcookie("Renew-cookies","1",time()+10*24*60*60);
}

你是真的这样做还是这只是一个如何做的例子? - Yang
说实话,我只是用 foreach($_COOKIE as $k=>$v) setcookie($k,$v); 在每个请求中更新 cookie,但我会第一个承认这不是一个好主意! - Niet the Dark Absol
是的,那真是太糟糕了。在任何现代应用程序中,cookie 应该被抽象化并封装在一个 Cookie 类中。 - Yang
Pfffthhht(或者无论你如何拼写这个声音)。自从我开始编程以来一直很好用。 - Niet the Dark Absol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接