Sesje w PHP
Gdy widzimy stronę internetową w swojej przeglądarce, skrypt PHP tej strony już dawno się wykonał i o nas zapomniał. Dlatego, gdy przechodzimy z jednej strony serwisu na drugą - skrypt PHP nie może zapamiętać danych z poprzedniej strony, na przykład wartości zmiennych.
Jednak taki mechanizm jest bardzo potrzebny, chociażby po to, aby zapamiętać wybór użytkownika lub to, że użytkownik był zalogowany.
W PHP do przechowywania danych użytkownika pomiędzy stronami serwisu przeznaczone są sesje. Możemy zapisać dowolną informację w sesji i odczytać ją stamtąd przy następnym uruchomieniu tego lub innego skryptu serwisu. Za pomocą sesji można zaimplementować logowanie użytkowników, koszyk sklepu internetowego i inne.
Sesja użytkownika jest przechowywana na serwerze. Jednocześnie nie żyje ona wiecznie, a tylko około pół godziny - jeśli użytkownik w tym czasie nie wykonał żadnych odwołań do serwisu, to jego sesja zostanie usunięta i stanie się pusta.
A więc, spójrzmy, jak pracować
z sesjami w PHP.
Aby coś zapisać w sesji, najpierw
trzeba ją zainicjować za pomocą funkcji
session_start:
<?php
session_start();
?>
Po inicjalizacji możemy coś zapisać
w sesji lub coś z niej odczytać.
Robimy to za pomocą superglobalnej tablicy
$_SESSION.
Spróbujmy w praktyce. Stwórzmy plik
test1.php i umieśćmy w nim następujący kod:
<?php
session_start();
$_SESSION['test'] = 'abcde'; // zapisujemy w sesji
?>
A w pliku test2.php - następujący kod:
<?php
session_start();
echo $_SESSION['test']; // czytamy z sesji
?>
Teraz na początku otwórz w przeglądarce plik
test1.php, a potem test2.php.
Przy otwarciu drugiego pliku w przeglądarce wyświetli się
to, co zostało zapisane w sesji w pierwszym pliku.
Stwórz dwa pliki. Przy uruchomieniu pierwszego pliku zapisz w sesji dwie liczby, a przy uruchomieniu drugiego pliku - wyświetl na ekranie sumę tych liczb.