KWALIFIKACJA INF3 - STYCZEŃ 2023 (test 2)

PYTANIE NR 38.
Funkcji session_start() języka PHP należy użyć przy implementacji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
session_start() służy do inicjalizacji sesji, czyli mechanizmu utrzymania stanu użytkownika między kolejnymi żądaniami HTTP. Stosuje się ją, gdy aplikacja ma udostępniać te same dane podczas przechodzenia między podstronami (np. logowanie, koszyk). Nie jest wymagana do samej obsługi formularza ani do wczytywania plików.

Pełne wyjaśnienie:

HTTP jest protokołem bezstanowym, więc po przejściu na inną podstronę serwer nie "pamięta" automatycznie danych z poprzedniego żądania. W PHP mechanizmem utrzymania stanu jest sesja. Funkcja session_start() inicjuje sesję (lub wznawia istniejącą) i udostępnia tablicę $_SESSION, w której można przechowywać dane związane z danym użytkownikiem między kolejnymi wejściami na różne strony.

Dlatego poprawne jest zastosowanie tej funkcji przy implementacji wielostronicowej witryny wymagającej dostępu do danych podczas przechodzenia pomiędzy stronami. Typowe przykłady to: utrzymanie informacji o zalogowaniu, roli użytkownika, zawartości koszyka czy etapów wieloetapowego procesu.

Odpowiedź o wczytywaniu danych z plików zewnętrznych jest błędna, ponieważ do odczytu plików używa się innych funkcji (np. operacji na plikach), a sesja nie jest mechanizmem importu danych z plików.

Stwierdzenie o dowolnej witrynie, która obsługuje ciasteczka także jest nietrafne: cookies mogą istnieć niezależnie od sesji. Co więcej, sesja w PHP często wykorzystuje ciasteczko tylko do przenoszenia identyfikatora sesji, ale to nie oznacza, że każda strona używająca cookies musi uruchamiać sesję.

Odpowiedź o obsłudze formularza jest zbyt ogólna. Samo przetworzenie danych z formularza można wykonać bez sesji (np. korzystając z $_POST). Sesja staje się potrzebna dopiero, gdy dane z formularza mają wpływać na stan użytkownika widoczny na kolejnych podstronach (np. po logowaniu).

Wskazówka egzaminacyjna: jeśli w zadaniu pojawia się potrzeba "pamiętania" informacji o użytkowniku między różnymi stronami/żądaniami, szukaj rozwiązań opartych o sesję i kojarz je z session_start() oraz $_SESSION.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Sesja w PHP to mechanizm przechowywania danych użytkownika po stronie serwera między kolejnymi żądaniami HTTP. Dzięki niej aplikacja może "pamiętać" np. logowanie, zawartość koszyka czy ustawienia, mimo że HTTP jest bezstanowe.
session_start() inicjuje nową sesję albo wznawia istniejącą na podstawie identyfikatora sesji przesłanego przez przeglądarkę. Po jej wywołaniu można korzystać z tablicy $_SESSION do zapisu i odczytu danych.
Wywołaj session_start() na każdej podstronie, która ma czytać lub zapisywać dane sesji (np. sprawdzać, czy użytkownik jest zalogowany). W praktyce umieszcza się ją na początku skryptu, przed wysyłaniem treści odpowiedzi.
W witrynie wielostronicowej użytkownik przechodzi między różnymi adresami i każde wejście to osobne żądanie. Sesja pozwala przenosić stan (np. identyfikator użytkownika) bez dopisywania go w URL i bez ponownego logowania przy każdej podstronie.
Sesja zwykle przechowuje dane na serwerze, a w przeglądarce jest co najwyżej identyfikator sesji. Ciasteczka przechowują dane po stronie klienta. To różne mechanizmy: cookies mogą działać bez sesji, a sesja nie zawsze wymaga cookies.
Nie zawsze. Proste przetworzenie formularza można wykonać przez odczyt danych z $_POST. Sesja jest potrzebna dopiero wtedy, gdy wynik formularza ma być pamiętany między podstronami, np. po zalogowaniu lub w wieloetapowym formularzu.
Bez uruchomienia sesji PHP nie ma pewności, że dane sesyjne zostaną wczytane i zapisane poprawnie. W efekcie aplikacja może nie "pamiętać" wartości między stronami, co objawi się np. znikającym zalogowaniem lub pustym koszykiem.
Najczęściej trzyma się identyfikator użytkownika, jego rolę/uprawnienia, tokeny bezpieczeństwa, ustawienia preferencji oraz dane procesu (np. koszyk lub etap wypełniania wniosku). Nie należy trzymać w sesji dużych plików ani danych zbędnych.
Po poprawnym logowaniu zapisuje się w sesji informację, że użytkownik jest uwierzytelniony (np. jego ID). Na kolejnych podstronach aplikacja sprawdza te dane w sesji i dopuszcza dostęp do treści, bez konieczności ponownego podawania hasła.
Przećwicz: inicjalizację sesji, zapis i odczyt $_SESSION, prosty mechanizm logowania oraz wylogowanie. Umiej też odróżnić sesję od cookies i wskazać, kiedy potrzebny jest stan między podstronami, a kiedy wystarczy jednorazowe żądanie.
info

To pytanie poprawnie rozwiązuje 62% zdających egzamin. średnie

Specjaliści zwracają uwagę: "session_start() służy do inicjalizacji sesji, czyli mechanizmu utrzymania stanu użytkownika między kolejnymi żądaniami HTTP."

Źródła:

  • PHP Manual: session_start — https://www.php.net/manual/en/function.session-start.php (dostęp: 2026-02-27)
  • PHP Manual: Sessions — https://www.php.net/manual/en/book.session.php (dostęp: 2026-02-27)
  • W3Schools: PHP Sessions — https://www.w3schools.com/php/php_sessions.asp (dostęp: 2026-02-27)

Materiały:

  • Oficjalna dokumentacja PHP: sekcja o sesjach i funkcji session_start()
  • Ćwiczenia praktyczne: logowanie + przechowywanie identyfikatora użytkownika w sesji
  • Porównanie mechanizmów: sesje vs cookies (krótka notatka + przykłady kodu)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego