Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SessionHandling, Zalozenia
thornag
post
Post #1





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Witam.

Chcialbym napisac jakis wlasny session handler po to by na przyklad moc uzywac zmiennych sesyjnych przy roznych domenach itp.

Czytalem o tym w ksiazce PHP5Zaawansowane programowanie, jednak tam zaprezentowana klasa jest jakas watpliwa (jak prawie cala ksiazka). Powod istnienia klasy jest moze wyjasniony dobrze ale jak ona sobie egzystuje juz nie.

Mam kilka pytan co do takiej koncepcji. Pierwsze z nich a chyba najwazniejsze i najbardziej ogolne to jaka roznica miedzy:
  1. <?php
  2. echo $_SESSION['var'];
  3. ?>


a
  1. <?php
  2. $ses = New Session();
  3. echo $ses->getVar('var');
  4. ?>


Drugie, czy przechowywanie danych sesji w bazie danych jest napewno optymalne i zalecane (tak sugeruja autorzy w/w ksiazki).

Trzecie, jak przy uzyciu takiej klasy moge uzywac sesji na wielu domenach.

Czy po zbudowaniu takiego handlera uzywa sie go po prostu jak sesji czy mozna go rozbudowac o np zajmowanie sie logowaniem i czy dla takiego wlasnie zajmowania jandler ma prawo istnienia.

Ogolnie rzecz ujmujac chcialbym ten temat jakos wszechstronnie rozkrecic zeby o zjawisku dowiedziec sie jak najwiecej.

Ten post edytował thornag 26.09.2006, 15:07:50


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
Prph
post
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

Pierwsze rozwiazanie i drugie wcale nie musi sie roznic. W zasadzie, to hendler sesji nie ma nic do tego, czy dostep do sesji masz tak:

  1. <?php
  2. echo $_SESSION['test'];
  3. ?>


czy tak:

  1. <?php
  2. $oSesja->get('test');
  3. ?>


A to za sprawa tego, ze handler to zbior funkcji lub metody klasy, ktore pozwalaja na zapis danych sesyjnych w inny sposob, niz standardowy - np. w bazie danych.

php pozwala na to dzieki funkcji session_set_save_handler.

Nakazujac php uzycia takiej formy zapisu nie tracisz na obsludze sesji, to jest: session_start(), session_close(), a takze do odczytu i zapisu danych:

  1. <?php
  2. $_SESSION['test'] = 'dziala';
  3. ?>


php zwyczajnie wywyluje odpowiednia funkcje podana do session_set_save_hendler().

A jak moglbys zabrac sie za obsluge sesji w kilku portalach?
Szczerze powiem, ze nie wiem dokladnie, bo nigdy tego nie probowalem. Ale Jedno jest pewnie - sesja musi byc trzymana w spolnej bazie danych.

Dodam jeszcze, ze przylad z ksiazki PHP5 Zaawansowane programowanie jest bardzo watpliwy winksmiley.jpg

Adrian.
Go to the top of the page
+Quote Post
thornag
post
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


Ok, to teraz sprawa optymalnosci bezpieczenstwa itp. Z tego co sobie tak mysle to jesli zapisywac by sesje w bazie a takze zmienne sesyjne to przy kazdym akcesie (po przeczytanie manuala do session_set_save_handler juz wiem ;P) typu $_SESSION['var'] skrypt bedzie wykonywal zapytanie.
Czy to napewno jest dobre rozwiazanie, rozumiem ze dane sesyjne php i tak zapisuje w zserializowanej postaci w plikach. Wydaje mi sie ze zeby zapisac owe dane w bazie i tak trzeba je zserializowac wiec i tak mamy zracy proces serializacji plus zapytanie ?


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
Prph
post
Post #4





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

Na temat optymalnosci takiego rozwiazanie bylo juz na forum i mozna o tym duzo pisac. Faktem jest, ze dochodzi zapytanie do bazy. Z drugiej strony zastosowanie bazy daje nam sporo mozliwosci. Po prostu trzeba to sprawdzic w praktyce. Sklepy internetowe trzymaja sesje w bazie (moj trzyma) i chodzi dobrze.

Adrian.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 18:49