Damian Urbańczyk PHP Obsługa sesji
Czym są sesje? Obsługa sesji polega na przechowywaniu wybranych danych dotyczących jednego, konkretnego zdarzenia – odwiedzin strony, w ramach której zdefiniowana została obsługa sesji w konkretnym celu. Sesja „rozpoczyna życie” w chwili, którą webmaster uznał za stosowną (np. po logowaniu) i „umiera” w chwili zamknięcia przeglądarki lub wydania polecenia zniszczenia sesji.
Gdzie korzystamy z sesji? Sesje wykorzystujemy tam, gdzie musimy przekazać pewne dane pomiędzy stronami, a nie chcemy danych tych przesyłać na komputer użytkownika (w formie ciasteczek – cookies). Dane gromadzone w ramach sesji nie są widoczne dla użytkownika, może nawet o nich nie wiedzieć, a serwis (odpowiednio napisane skrypty) mogą z nich z powodzeniem korzystać. Sesje są często stosowane w serwisach, gdzie należy się zalogować. Autoryzacja danych rozpoczyna sesję, a wylogowanie się – niszczy sesję.
Początek sesji Aby w skryptach PHP rozpocząć sesję, korzystamy z funkcji: session_start(); Najlepiej, jeśli dana funkcja zostanie umieszczona na początku każdej strony, każdego skryptu. Należy pamiętać, że funkcja ta musi być wywołana na wszystkich stronach, na których mamy zamiar korzystać z sesji – nie tylko na tych stronach, na których definiujemy sesję.
Definiujemy dane sesji Aby zdefiniować dane sesji, należy nazwać poszczególne elementy sesji. Elementy sesji to zmienne, które w nazwie zawierają słowo, identyfikujące je jako sesje. Przykład definicji jednego elementu: $_SESSION["imie"]="Damian"; W ten sposób zdefiniowałem zmienną w ramach sesji. Od teraz, wszędzie gdzie wykorzystam zmienną $_SESSION["imie"], otrzymam słowo „Damian”.
Niszczymy zmienną sesji Aby usunąć zmienną z sesji, używamy funkcji unset(); Przykładem może być usunięcie zmiennej, definiującej imię w ramach danej sesji: unset($_SESSION["imie"]); Do chwili użycia tej funkcji, sesja przechowywała imię, a po jej użyciu zmienna ta nie przechowuje nic, gdyż jej nie ma.
PHPSESSID Identyfikator aktualnej sesji, który można przesyłać w ramach adresów, to PHPSESSID. Można go wykorzystać, aby pokazać użytkownikom, że działają w ramach jednej sesji – nawet, gdy przechodzą na inne strony wchodzące w skład jednego serwisu. Aby móc korzystać z PHPSESSID, należy najpierw zmienić ustawienia PHP na serwerze: session.use_trans_sid – w tym miejscu należy włączyć funkcję, zmieniając 0 na 1. Od tego momentu wszystkie przejścia pomiędzy stronami serwisu będą zawierały jeszcze dodatek w postaci nazwy sesji, składającej się z cyfr i liter, np.: strona.php?PHPSESSID=8c44df3a996d9438c5ee4731c1ec6533
Sesje czy ciasteczka? Jest to pytanie, które zadaje sobie wielu twórców stron internetowych. Wybór powinien zależeć przede wszystkim od funkcjonalności serwisu. Wiadomo, że w przypadku bardzo ważnych danych (np. bankowość elektroniczna), lepiej nie używać rozwiązań, które przechowują ważne dane na komputerze użytkownika – wtedy wybieramy sesje. Jeśli jednak chcemy zdefiniować wersję językową strony, albo pozwolić użytkownikowi na wybór wersji kolorystycznej strony, wtedy można użyć ciasteczek (cookies).
Dziękuję za uwagę!