Session Handler - powrót do domyślnego |
Session Handler - powrót do domyślnego |
23.08.2009, 21:37:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) |
Ustawiłem własny Handler do sesji - wszystko zapisuje się do bazy danych.
Niestety w pewnej sytuacji potrzebuję ustawić dane sesji do bazy danych, a potem powrócić do domyślnej obsługi i zapisać dane do pliku. Niestety nie wiem jak przywrócić domyślny Session Handler. Czyli schemat działania: 1.) Zmiana Handlera na nowy. 2.) Zapis danych sesji (do bazy danych). 3.) Odczyt (weryfikacja). 4.) Zakończenie pracy. 5.) Powrót do domyślnej obsługi (domyślny Handler). 6.) Zapis danych sesji. 7.) Odczyt (weryfikacja). 4.) Automatyczne zakończenie pracy. Do tej pory robiłem coś takiego:
ale wstawia dane do bazy danych zamiast do plików. Czy mi się dobrze wydaje - ustawienie nowego Handlera działa na stałe - nie do zakoczenia sesji/skryptu? Ten post edytował Walian 23.08.2009, 21:38:39 |
|
|
23.08.2009, 21:44:07
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat Niestety w pewnej sytuacji potrzebuję ustawić dane sesji do bazy danych, a potem powrócić do domyślnej obsługi i zapisać dane do pliku. To nie możesz sprawdzać odpowiedniego warunku przy write danego handlera...? Po co do muchy z armaty? -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
24.08.2009, 20:00:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) |
Czyli Tobie chodzi o to, bym mojego handlera przerobił tak, by zapisywał/odczytywał dane zarówno z bazy danych jak i z plików, w zależności co wybiorę w danym momencie. Ale moim zdaniem to jest właśnie "wyjazd z armaty" Bo wychodzi na to, że musiałbym przerobić nieco klasę w której mam handlera, ale to więcej roboty niż przywrócenie na chwilę domyślnego handlera (o ile to możliwe).
Tak poza tym to - sesje mi są potrzebne tylko do logowania, natomiast zapis do pliku tylko przy rejestracji konta - po to, by używając przycisku "< Popraw dane" (pisałem o tym tu) usera przeniosło spowrotem na formularz, który wypełniał i aby został on (formularz ) wypełniony. Niestety jeśli również i te dane miałyby być zapisywane do bazy to pole z wartościami dodatkowymi (te, które są serializowane) musiałoby mieć jeszcze dłuższą wartość - a po cholerę? Tak więc da się powrócić do domyślnego handlera czy nie? ## Dodane 24.08.2009 21:00: Dobra pokombinowałem trochę, ale nic to nie dało. Napisałem sobie osobną klasę do obslugi sesji poprzez pliki (czy zmieniam handlera 2x - raz dla bazy, raz dla plików), ale nadal sesja plikowa się sypie jeśli "przed nią" użyję sesji bazodanowej - dublują się pliki, klasa (metodą destroy) próbuje usunąć nieistniejący plik, nie zapisują się dane czasami, nie odczytują nigdy itd. robię to tak:
Nie wierzę, że nikt nie wie jak poradzić sobie z tym problemem... Ten post edytował Walian 24.08.2009, 20:01:53 |
|
|
24.08.2009, 20:34:10
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
-------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
24.08.2009, 20:52:13
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
Czyli Tobie chodzi o to, bym mojego handlera przerobił tak, by zapisywał/odczytywał dane zarówno z bazy danych jak i z plików, w zależności co wybiorę w danym momencie.... zrób klasę opakowującą całość będącą sterownikiem i przekazującą parametry w zależności od jej ustawień wewnętrznej zmiennej... jak zmienisz wartość tej zmiennej to przekierowanie na inną klasę/funkcję czy co tam jeszcze masz ;p -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
25.08.2009, 20:18:53
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) |
Dobra przerobiłem klasę, wydaje mi się, że działa dobrze, ale gdy nie zmieniam Session Id, tyle, że chcę je zmianiać - dla bezpieczeństwa.
Spójrzcie na poniższy skrypt:
Skrypt zwróci: Kod Sesja 1: SID after session_start(): pqj5e9168f83j3v3f6rrr67iq3 SID after session_regenerate_id(): fhheis585jjerceguvq4n25vg6 Sesja 2: SID after session_start(): fhheis585jjerceguvq4n25vg6 SID after session_regenerate_id(): g8plb8lmesj4nr89bj20g6ptc2 Wiem, że mogę to rozwiązać np. wrzucając: przed: ale nie wiem czy to dobry pomysł... Jak Wy byście to zrobili? Ten post edytował Walian 25.08.2009, 20:20:56 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 19:39 |