Jędrzej Danko

Jędrzej Danko System Architect,
LookLED24.pl

Temat: Czas wygaśnięcia cookie - różnica pomiędzy FF a IE6

Złapaliśmy w firmie ciekawy błąd, czy też różnicę pomiędzy Firefoxem a IE6 (i możliwe, że innymi przeglądarkami również)
Na początku dwa skrypty:
setcookie.php:
<?php
setcookie('ciacho','value', time()+60);
?>

checkcookie.php:
<?php
print_r ($_COOKIE);
?>

Musimy jeszcze zadbać o to, żeby serwer WWW zwracał czas wcześniejszy od naszego lokalnego - np. o 2 godziny (przestawiamy czas lokalny na naszym komputerze o 2 godziny do przodu ;))

Odpalamy Firefoxa, uruchamiamy pierwszy skrypt, a później drugi. Jeśli zmieściliśmy się w minucie, zobaczymy, że ciacho zostało ustawione.
Później robimy to samo w IE: cookie nie zostaje ustawione!

Co się stało?

Z naszych domysłów wynika co następuje:

Serwer, zwracając stronę, w nagłówkach umieścił nagłówek Date i nagłówek Set-Cookie, z dodatkową informacją expire={data}. Ważne jest to, że {data} jest określona jako konkretny moment, a nie jako przesunięcie.

Firefox pobiera date z nagłówka Date oraz czas wygaśnięcia ciacha, wylicza z nich przesunięcie, dodaje to przesunięcie do czasu lokalnego i w ten sposób określa czas wygaśnięcia ciacha.

IE jedynie porównuje czas lokalny i czas wygaśnięcia. W efekcie, jeśli czas serwera jest różny od czasu lokalnego, ustawienie cookie na IE przestaje być możliwe.

Różnica w działaniu jest oczywista, zastanawia nas jednak, które podejście jest prawidłowe...Jędrzej Danko edytował(a) ten post dnia 05.12.08 o godzinie 16:29
Jakub Korupczyński

Jakub Korupczyński Software Developer

Temat: Czas wygaśnięcia cookie - różnica pomiędzy FF a IE6

Ie się zachowuje tak jak należy. Tzn udogodnienie firefoxa jest bardzo dobre ale tracisz tak na prawdę kontrole nad tym co robisz.
Ogólnie w expire time wysyłasz czas wygaśnięcia, więc w przypadku różnic w godzinie niestety nie da się tego dobrze ustawić bez przesłania od użytkownika jego czasu.

Dlatego lepiej korzystać z sesji i czas wygaśnięcia mieć u siebie.Jakub Korupczyński edytował(a) ten post dnia 05.12.08 o godzinie 18:15

Następna dyskusja:

Cookie browser do firefoxa




Wyślij zaproszenie do