Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serialize w Cookie
Forum PHP.pl > Forum > PHP
bartexx
Witam serdecznie umieściłem tablicę w COOKIE w ten sposób:
  1. $tablica = array('a' => 'pierwszy', 'b' => 'drugi');
  2. setcookie('tablica', serialize($tablica) );
  3.  

A problem zaczyna się gdy chcę odkodować w innym pliku $_COOKIE['tablica']
  1. print_r(unserialize($_COOKIE['tablica']));


Problem jest taki że nie chce mi tej komendy wykonać sad.gif Może ktoś zna sposób questionmark.gif Z góry dzięki
wookieb
Nie chce wykonać bo? Masz błąd? Ciasteczko ma w ogóle jakąkolwiek wartośc?
Zyx
Zserializowanych danych nie powinno się umieszczać w ciastkach ze względów bezpieczeństwa. Czy pomyślałeś o sytuacji, gdy ktoś sobie podmieni ciastko w taki sposób, by zamiast tablicy odserializowywało Ci obiekt jakiejś klasy?
bartexx
Moim zamiarem jest przechowywanie ID kilku klientów w Tablicy a tablice w COOKIE... Bezpieczne to jest questionmark.gif
wookieb
Nie...
bartexx
Tak sobie pomyślałem a gdyby zamiast Id przechowywać tam e-mail klienta?? Było by bardziej bezpieczne...
wookieb
Dowiedz się co to sesja. To Ci w zupełności wystarczy.
bartexx
Ja wiem co to sessja... ale jak wzyłącze przeglądarek to sessja gaśnie a wraz z tym wszystkie dane klienta... a to chodzi o to aby klient miał zapisane swoje konto w podpowiedziach za pomocą grafiki a nie podpowiedzi w formularzu


Co sądzisz o moim pomyśle?? jest on wykonalny questionmark.gif
Bags_Bunny
Cytat(bartexx @ 6.05.2011, 21:06:48 ) *
Ja wiem co to sessja... ale jak wzyłącze przeglądarek to sessja gaśnie a wraz z tym wszystkie dane klienta...

Lubię kontrasty. Niby wiesz co to, ale nie masz pojęcia jak działa.
Poczytaj o session_set_cookie_params i tym podobnych.
bartexx
Masz racje pierwszy raz spotykam się z taką funkcją... Ale z tego co przeczytałem i zrozumiałem to ta funkcja przedłuża czas aktywności sesji nawet po wyłączeniu przeglądarki.

Zobacz na to bartexweb.cba.pl. Mi chodzi o to aby te małe graficzne okienka były przypisane do klienta (nawet jak po roku odpali jeszcze raz tą stronkę ) który będzie chciał aby był zapamiętany na stronie głównej... i maksymalnie 10 klientów może być w ten sposób zapamiętanych
Bags_Bunny
Nie. Ta funkcja nie przedłuża aktywności sesji. Ona może przedłużyć żywotność ciastka z id sesji.
Domyślnie, sesje są trzymane na serwerze w plikach. Id sesji jest wysyłane ciachem.

Żeby utrzymać sesję potrzebna jest żywotność obu tych elementów.
O tym jak przedłużyć życie samej sesji przeczytasz w komentarzach na stronie, do której adres wcześniej podałem.

Niemniej jednak, jeśli chcesz to trzymać przez bardzo długi okres czasu to polecam zrobić cos jeszcze.

session_save_path pozwoli Ci zapisać dane sesji u Ciebie, dzięki czemu nie będzie obawy, że administracja serwera coś wyczyści (o ile pamiętam PHP domyślnie je trzyma w /tmp). Ważne tylko, żeby ten folder nie był dostępny z zewnątrz ze względów bezpieczeństwa. Najlepiej go wrzucić powyżej public_html, ewentualnie zablokować w .htaccess lub nadać mu nazwę rozpoczynającą się od .ht, jeśli korzystasz z Apache.

Co jednak chyba byłoby dla Ciebie najlepsze to session_set_save_handler. Możesz po prostu stworzyć kilka prostych funkcji i zapisywać sesje np. do bazy. To już Ci daje bardzo dużą elastyczność i kontrolę.
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.