Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_COOKIE i serialize/unserialize
Forum PHP.pl > Forum > PHP
gothye
witam
zapisuję tablicę do $_COOKIE za pomocą serialize :

  1. $tablica = array('dana' => 'wartosc' , 'inna' => 'cos innego');
  2.  
  3. setcookie('section', serialize($tablica), time()+86400);
  4.  
  5. // test ,widze ze zaspisuje i $_COOKIE istnieje
  6. print_r($_COOKIE);
  7.  


potem chcę użyć unserialize :

  1. $odczyt = unserialize($_COOKIE['section']);


ale niestety nie działa sad.gif


tehaha
hej z góry powiem, że nie mam dużego doświadczenia z ciasteczkami, ale ostatnio też sprawiły mi trochę kłopotu - też coś podobnego, że niby się zapisywało a potem nie mogłem o odczytać i w moim przypadku problem rozwiązało dorzucenie 2 parametrów(ścieżka i domena) przy ustawieniu ciacha czyli tak:
  1. setcookie("cookie_name", $cookie_value, time()+60*60*24*30, '/', '.nazwadomeny.pl');
gothye
tehaha cookie są zapisywane ,ale dane zawarte w cookie nie ulegają unserialize i tu jest pytanie dlaczego ?

dla przyszłcyh pokoleń ,aby dokonać unserialize z tablicy $_COOKIE należy użyć najpierw stripslashes potem unserialize winksmiley.jpg
Crozin
Raczej: należy sprawdzić czy przypadkiem magic_quotes_gpc nie jest włączone (get_magic_quotes_gpc) i jeżeli tak to dopiero wtedy traktować stripslashes
Zyx
A ja bym w ogóle zrezygnował z serializowania zawartości ciastek. Jest to format, który bezpośrednio odbija strukturę zmiennej PHP na zapis tekstowy, zatem w szczególności można go tak spreparować, by podszyć się pod dowolny typ danych, w tym także - obiekty klas naszego systemu. W poniższym linku jest opisane, jak zaatakować aplikacje oparte na Zend Frameworku w połączeniu z "frameworkiem bezpieczeństwa" PHP-IDS, który odserializowuje każde dane, które wyglądają na zserializowane:

http://www.sektioneins.com/en/advisories/a...lity/index.html

Lepiej zapisać te dane jako kilka ciastek lub stworzyć sesję, w której nigdy nie opuszczą one serwera, a klient dostanie jedynie unikalny identyfikator, który już jest dużo prościej chronić.
erix
Raz, ciastka, to fatalny mechanizm do zapisywania. Dwa:

Cytat
ale niestety nie działa

Ciastka będą wysłane po odświeżeniu strony.
gothye
zmieniłem zapis do cookie ,z serjalizacji na inny ,akutalnie klasa wygląda tak : http://no-paste.pl/code/10071
erix
Ale przecież są sesję, po kiego grzyba tak kombinujesz? :/

Zwiększasz tylko niepotrzebnie ruch na stronie (ciastko jest wysyłane przy każdym żądaniu).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.