Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Session Handler - powrót do domyślnego
Walian
post
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:

  1. // Tutaj praca z sesją przy z nowym Handlerem (Baza danych).
  2. session_write_close(); // Myślałem, że to wystarczy by PHP powróciło do domyślnej obsługi
  3. // Tutaj praca z domyślnym Handlerem (Pliki).


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Walian
post
Post #2





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:
  1. echo "Sesja 1:<br>\n";
  2. session_name('SESJA_1');
  3. echo 'SID after session_start(): '.session_id()."<br>\n";
  4. echo 'SID after session_regenerate_id(): '.session_id()."<br>\n";
  5. echo "<br><br>Sesja 2:<br>\n";
  6. session_name('SESJA_2');
  7. echo 'SID after session_start(): '.session_id()."<br>\n"; // <- tu powinno być nowe id, a jest stare!
  8. echo 'SID after session_regenerate_id(): '.session_id()."<br>\n";


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:
  1. session_id(md5('jakis_losowy_ciag'));

przed:
  1. session_name('SESJA_2');

ale nie wiem czy to dobry pomysł...
Jak Wy byście to zrobili?

Ten post edytował Walian 25.08.2009, 20:20:56
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 19:05