KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 32.
W języku PHP zmienna predefiniowana $_SESSION zawiera
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
$_SESSION w PHP to superglobalna tablica przechowująca dane (zmienne) przypisane do bieżącej sesji użytkownika. Nie jest to lista wszystkich sesji na serwerze ani dane przesyłane z formularza ($_POST) czy z ciastek ($_COOKIE). Dzięki temu można zachować stan aplikacji między żądaniami.

Pełne wyjaśnienie:

W PHP $_SESSION jest superglobalną tablicą asocjacyjną, w której przechowuje się zmienne zarejestrowane w bieżącej sesji użytkownika. Oznacza to, że aplikacja może zapamiętywać określone informacje pomiędzy kolejnymi żądaniami HTTP (które same w sobie są bezstanowe), np. identyfikator zalogowanego użytkownika, jego rolę czy zawartość koszyka.

Odpowiedź "spis zarejestrowanych sesji na serwerze WWW" jest błędna, ponieważ $_SESSION nie służy do administracyjnego przeglądu wszystkich sesji. To struktura danych dostępna w skrypcie, odnosząca się do konkretnego klienta (konkretnej sesji), a nie do globalnego katalogu sesji.

Odpowiedź "zmienne przesyłane do skryptu za pomocą formularza" myli mechanizmy. Dane z formularzy trafiają typowo do $_POST (lub $_GET, zależnie od metody), a nie do $_SESSION. Sesja może co prawda przechować dane pochodzące z formularza, ale dopiero jeśli programista jawnie je tam zapisze.

Odpowiedź "zmienne przesyłane do skryptu za pomocą ciastek (cookie)" również jest błędna: cookies są dostępne w $_COOKIE. Ciasteczko często przechowuje jedynie identyfikator sesji, natomiast właściwe dane sesyjne są mapowane do $_SESSION po stronie aplikacji. To rozróżnienie jest ważne na egzaminie: POST/GET to wejście z żądania, COOKIE to dane z przeglądarki, a SESSION to dane sesyjne utrzymywane między żądaniami.

  • Wskazówka egzaminacyjna: gdy pytanie dotyczy "bieżącej sesji" i "zmiennych sesyjnych", najczęściej chodzi o $_SESSION.
  • W praktyce: aby korzystać z sesji, zwykle inicjuje się ją na początku skryptu (np. przed użyciem danych sesyjnych).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
$_SESSION to superglobalna tablica PHP przechowująca dane przypisane do bieżącej sesji użytkownika. Pozwala utrzymać stan aplikacji między kolejnymi żądaniami HTTP, np. informację o zalogowaniu, rolach czy koszyku.
Najczęściej zapisuje się identyfikator użytkownika, login/rolę, tokeny autoryzacyjne, dane koszyka, ustawienia tymczasowe i flagi kontrolne. Zasada praktyczna: zapisuj dane, które są potrzebne w wielu żądaniach, ale nie muszą być trwałe jak w bazie.
$_COOKIE zawiera dane wysłane z przeglądarki w ciasteczkach. $_SESSION zawiera zmienne sesyjne widoczne dla skryptu. Często cookie przechowuje tylko identyfikator sesji, a właściwe dane są odczytywane do $_SESSION.
$_POST to dane z formularza wysłane metodą POST w danym żądaniu. $_SESSION to dane utrzymywane między żądaniami w ramach tej samej sesji. Jeśli w treści jest "bieżąca sesja" lub "stan po zalogowaniu", zwykle chodzi o $_SESSION.
Dane pojawiają się w $_SESSION wtedy, gdy aplikacja je tam zapisze (np. po zalogowaniu) i gdy mechanizm sesji jest aktywny. Samo wysłanie formularza lub cookie nie "wypełnia" $_SESSION automatycznie bez logiki po stronie skryptu.
Nie. $_SESSION to widok danych jednej sesji, związanej z aktualnym użytkownikiem/żądaniem. Nie służy do przeglądania wszystkich sesji. Administracja lub analiza wielu sesji wymaga osobnych narzędzi i dostępu do mechanizmu składowania sesji.
Typowe błędy to mylenie $_SESSION z $_COOKIE lub $_POST, zapisywanie w sesji zbyt dużych danych, trzymanie wrażliwych informacji bez zasad bezpieczeństwa oraz poleganie na sesji jak na trwałej bazie danych. Na egzaminie najczęstsza pomyłka to wybór "formularza" zamiast sesji.
HTTP jest bezstanowe, więc serwer nie "pamięta" użytkownika między żądaniami. Mechanizm sesji dodaje identyfikator sesji (często w cookie), a PHP mapuje go na dane sesyjne. Skrypt odczytuje i zapisuje te dane przez tablicę $_SESSION.
Sesje pozwalają utrzymać kontekst użytkownika: logowanie, autoryzację, koszyk, postęp w procesie zamówienia czy ustawienia interfejsu. Bez sesji trzeba byłoby przesyłać stan w każdym żądaniu (np. w parametrach), co jest mniej wygodne i często mniej bezpieczne.
Warto nauczyć się mapowania: formularz → $_POST/$_GET, cookies → $_COOKIE, pliki → $_FILES, sesja → $_SESSION, serwer/środowisko → $_SERVER. Pomaga rozwiązywanie krótkich zadań: "skąd pochodzą dane?" i "jak długo mają być dostępne?".
info

Około 57% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że $_SESSION w PHP to superglobalna tablica przechowująca dane (zmienne) przypisane do bieżącej sesji użytkownika.

Źródła:

  • PHP Manual: Sessions - https://www.php.net/manual/en/book.session.php (accessed 2026-03-01)
  • PHP Manual: $_SESSION - https://www.php.net/manual/en/reserved.variables.session.php (accessed 2026-03-01)
  • PHP Manual: Predefined Variables (Overview) - https://www.php.net/manual/en/reserved.variables.php (accessed 2026-03-01)

Materiały:

  • Oficjalna dokumentacja PHP: rozdziały o sesjach i superglobalnych zmiennych
  • Ćwiczenia praktyczne: logowanie i autoryzacja z użyciem sesji
  • Materiały do INF.3 o bezpieczeństwie: utrwalanie pojęć cookies vs sesja

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego