Ustaw plik cookie, aby nigdy nie wygasał


187

Przeglądając dokumentację php dotyczącą ustawiania pliku cookie , widzę, że mogę ustawić datę ważności pliku cookie. Możesz ustawić, aby plik cookie wygasał pod koniec sesji przeglądarki lub w przyszłości, ale nie widzę sposobu, aby plik cookie nigdy nie wygasał. Czy to w ogóle możliwe i jak się to osiąga?


13
@sAc: Dlaczego to zła rzecz?
brainimus

1
Ponieważ i tak nie jest to możliwe zgodnie ze specyfikacją plików cookie. Nie można ustawić, aby nigdy nie wygasało.
Sarfraz

2
Możesz użyć $cookie->setMaxAge(2147483647);, która jest późniejsza niż 2080 i działa zarówno w wersji 32-bitowej, jak i 64-bitowej, z github.com/delight-im/PHP-Cookie
caw

Odpowiedzi:


259

Wszystkie pliki cookie wygasają zgodnie ze specyfikacją plików cookie , więc nie jest to ograniczenie PHP.

Użyj dalekiej przyszłości. Na przykład ustaw plik cookie, który wygasa za dziesięć lat:

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

Pamiętaj, że jeśli ustawisz datę po 2038 roku w 32-bitowym PHP, liczba zostanie zawinięta, a otrzymasz ciasteczko, które wygasa natychmiast.


8
Zgoda! I myślę, że za 20 lat strony internetowe będą daleko przed nami, że prawdopodobnie nie będą używane pliki cookie. @Brainimus: Po prostu skorzystaj ze starego systemu szkolnego, o którym wszyscy wspominali - aktualny czas + czas w dalekiej przyszłości!
wstrząs

13
Uważaj, że gdy nadejdzie 2018, jeśli nie używamy 64-bitowego PHP, to obejmie 32-bitową liczbę całkowitą i zostanie wysłana do klienta jako czas bliski zeru. (Dzieje się tak teraz w przypadku 25-letnich plików cookie na PHP.)
Riking

83
Zabawnie będzie wrócić do tych komentarzy w 2018 r. (Za 5 lat) i przekonać się, że wszyscy starają się wdrożyć aktualizację Y2018, a następnie ponownie 20 lat później w 2038 r. Mamy nadzieję, że do tego czasu wszyscy przejdziemy do 64-bitowego wszystkiego nie będzie problemem przez kolejne 292 miliardy lat w niedzielę, 4 grudnia 292,277,026,596. Chyba że dojdziemy do osobliwości zanim umrę, nie sądzę, że będę musiał się tym martwić.
shaunhusain

58
Jeśli dana osoba korzysta z tego samego komputera pod koniec 2037 r., Z którego korzysta teraz ... byłoby to po prostu smutne!
Abela,

22
Czytam to w 2018 roku, przez chwilę spanikowałem, a potem zdałem sobie sprawę, że wszystko w porządku.
Interloper
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.