这是我使用的代码,它可以强制让Cookie在90天后过期:
setcookie("WHMCSAffiliateID", $aff, time()+90*24*60*60);
如果我想使cookie永不过期,我需要将这行代码改成什么?
怎么样?
$year = 365*86400;
setcookie("WHMCSAffiliateID", $aff, time()+100*$year);
?
一百年显然太长了,两年应该足够了。或者只用一年。如果您必须绝对确定并且永远不更改代码,则可以使用十年。
无法将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);
}
foreach($_COOKIE as $k=>$v) setcookie($k,$v);
在每个请求中更新 cookie,但我会第一个承认这不是一个好主意! - Niet the Dark AbsolCookie
类中。 - Yang