Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Adrian.
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: 27.12.2025 - 21:09