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<?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:

test1.php<?php
  session_start();
  $_SESSION['test'] = 'abcde'; // zapisujemy w sesji
?>

A w pliku test2.php - następujący kod:

test2.php<?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.

Задание 1

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.