2013-03-02 2 views
3

Это код, который я использую, который заставляет печенье истекает через 90 дней:Настройка Cookie Дата истечения срока действия

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

Если я хочу печенье, чтобы никогда не истекает, то, что мне нужно изменить эта строка?

+0

Возможные дублируют http://stackoverflow.com/questions/3290424/set-a-cookie-to-never- expire – Elbek

ответ

0

Как насчет

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

?

100 лет немного очевидно. 2 года должны быть прекрасными. Или 1. Или 10, если вам нужно быть абсолютно уверенным и никогда не менять свой код.

0

Невозможно установить cookie, чтобы никогда не истекать. Однако, если вы периодически обновляете куки, то они могут эффективно жить вечно.

Лично я хотел бы установить куки в течение 30 дней и обновлять их так часто. Один из способов сделать это может быть:

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

Тогда на каждом PageLoad:

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); 
} 
+0

Вы действительно так делаете или просто пример того, как это сделать? – Yang

+0

Ну, честно говоря, я просто обновляю файлы cookie по каждому запросу с помощью 'foreach ($ _ COOKIE as $ k => $ v) setcookie ($ k, $ v);' но я буду первым, кто признает, что это не отличная идея! –

+0

Да, это просто ужасно. В любом приложении современные файлы cookie приложений должны быть абстрагированы и инкапсулированы в класс 'Cookie'. – Yang

Смежные вопросы