skanuj0216 (4)

skanuj0216 (4)



Rozdział 8. ♦ Cookies i sesje 229

Rysunek 8.3.

Identyfikator sesji    ^

przekazywany    ...............................................................

W adresie URL    @t | hltp://localhost/inde>c3.php?PHPSESSID-«8e8346d827fef02i0b722882ee«5cH

Aktualności,

Każdej sesji można przypisywać zmienne, które będą dostępne przez cały czas jej trwania. Jeśli zatem rozpoczniemy sesję, a użytkownik odwiedzi stronę główną naszej witryny, zmienne tej sesji będą również dostępne na wszystkich podstronach, aż do zakończenia sesji. Wszystkie takie zmienne są przechowywane na serwerze, a użytkownik nie ma do nich dostępu. Jak takie rozwiązanie działa w praktyce, dowiemy się dzięki lekturze kolejnych stron tego rozdziału.

Począwszy od wersji 4.0 obsługa sesji jest wbudowana w PHP i nie trzeba stosować dodatkowych modułów. W przypadku wersji wcześniejszych niezbędne jest skorzystanie z biblioteki PHPLib. Wykorzystanie PHP w wersji poniżej 4 jest jednak obecnie praktycznie niespotykane.

Obsługa sesji

Rozpoczynanie sesji

Sesja może być rozpoczynana na kilka różnych sposobów. Podstawowy to wywołanie funkcji session_start. W przypadku gdy sesja wykorzystuje cookies, funkcja ta musi być wywołana, zanim jakiekolwiek dane zostaną wysłane do przeglądarki. Wynika to z faktu przesyłania cookies w nagłówkach protokołu HTTP. Warto umieścić wywołanie se$sion_start na początku każdego skryptu korzystającego z sesji. Funkcja session_ start nie przyjmuje żadnych parametrów, a zatem jej wywołanie ma postać: session_start();

i zwraca wartość true. Należy zwrócić uwagę na to, że począwszy od wersji 4.3.3 wywołanie funkcji session_start w przypadku gdy sesja została już otwarta (w tym samym skrypcie) powoduje powstanie błędu. Nie można zatem otworzyć dwóch sesji w tym samym skrypcie.

Sesja zostanie również rozpoczęta, jeśli wywołana zostanie funkcja session_register rejestrująca zmienne dla sesji. Dokładniejszy opis działania tej funkcji znajduje się w sekcji „Zmienne sesji”.

Istnieje również możliwość automatycznego rozpoczynania sesji podczas wywoływania każdego skryptu. W tym celu należy ustawić na 1 zmienną konfiguracyjną session. auto_start w pliku php.ini. Wartością domyślną jest 0, czyli domyślnie opcja ta jest wyłączona.

Kończenie sesji

W celu zakończenia sesji należy wywołać funkcję session_destroy. Usuwa ona identyfikator oraz zasoby powiązane z sesją, nie usuwa jednak zmiennych zarejestrowanych


Wyszukiwarka

Podobne podstrony:
skanuj0220 (3) Rozdział 8. ♦ Cookies i sesje 233 Rozdział 8. ♦ Cookies i sesje 233 Rysunek 8.5. Wy
skanuj0226 (3) Rozdział 8. ♦ Cookies i sesje 239 Rozdział 8. ♦ Cookies i sesje 239 Rysunek
skanuj0212 (5) Rozdział 8. ♦ Cookies i sesje 225 Rozdział 8. ♦ Cookies i sesje 225 _ ip
skanuj0218 (4) Rozdział 8. ♦ Cookies i sesje 231 Funkcja zwraca wartość true, jeżeli zmienna przekaz
skanuj0224 (3) Rozdział 8. ♦ Cookies i sesje 237 if($arr[l] — $pass){ Sresult -
31567 skanuj0228 (3) Rozdział 8. ♦ Cookies i sesje 241Śledzenie użytkownika Sesje można wykorzystać
30701 skanuj0214 (4) Rozdział 8. ♦ Cookies i sesje 227 else i f(i sSet($_GET[ nazwa ])){ setCookiet&
83860 skanuj0222 (3) Rozdział 8. ♦ Cookies i sesje 235 Tabela 8.1. Opcje konfiguracyjne sesji (ciąg

więcej podobnych podstron