![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 30.10.2010 Ostrzeżenie: (0%)
|
Witam,
po malu staram sie rozkminiac session handlera ktorego mam z phpclasses. Mam kilka pytań. Po zalożaniu sesji w bazie mysql pojawia sie expire-date ta data sie jednak nie zmienia wiec czemu ma sluzyc ? (pobiera czas sesji i co z tym ?)
odwolanie do tego:
Potem nastepnie mama: session_set_save_handler w tym read write open closed itp. Jak do tych funkcji odwolac sie z poziomu strony ? bo dzieki funkcji read($session_id) moge wyczytac dane ktora mam w session-data czyli dane ktore zapisze $_SESSION['data']= 'x' np. chciałbym bardziej zrozumieć dzialanie tego typu obslugi sesji. Nie wiem jak je sprawdzac po stronie klienta bo w login.php tworze obiekt sesji zapisuje do niego dane ale np. na stronie zalogowany.php nie wiem jak do nich sie odwolac ? SESSIOn handler:
Ten post edytował tabbi 17.11.2010, 20:28:10 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 1 Dołączył: 9.10.2008 Ostrzeżenie: (0%)
|
Po kolei :-).
Co do czasu sesji - jest to data, czy liczba sekund? Pobieżnym rzutem oka (session.gc_maxlifetime) określa, ile maksymalnie może trwać sesja. Jeśli jest to rzeczywiście data i się nie zmienia, to albo jest błąd, albo tworzą się kolejne rekordy sesji (więc też jest de facto błąd). Ale na mój gust jest to maksymalna liczba sekund czasu trwania sesji. Co do drugiej sprawy - zapisywanie obiektów do sesji nie jest takie trywialne. PHP generalnie nie wspiera obiektów sesyjnych. To co można zrobić, to zapisywać do sesji obiekt zserializowany, a w następnym pliku zdeserializować, aby obiekt "odzyskać" (zobacz funkcje serialize oraz unserialize). Najprostsza implementacja w index.php:
Można tutaj się troszkę pobawić konstruktorem oraz funkcją magiczną __wakeup w obiekcie. Troszkę na pewno będzie zabawy jeśli chodzi o zapisywanie danych zmienianych w obiekcie. Każda funkcja zmieniająca stan obiektu powinna zapisywać od razu te zmiany w sesji. Generalnie idea obiektu w sesji raczej dotyczy tzw. Singletonów (taki wzorzec). Fajnie sobie zaimplementować jego obsługę, wtedy człowiek się nie męczy zanadto podczas obsługi. Obiekt Session też raczej pod to podpada; występuje tylko raz w całym programie. Mam nadzieję, że podsunąłem parę rzeczy. |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 00:02 |