KWALIFIKACJA INF3 - STYCZEŃ 2024 (test 2)

PYTANIE NR 23.
Aby w języku PHP odwołać się do danych formularza wysyłanych metodą bezpieczną, należy zastosować tablicę
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
$_POST to superglobalna tablica PHP zawierająca wartości pól formularza wysłanych metodą HTTP POST.
Pozostałe tablice mają inne zastosowania: $_FILES dla uploadu plików, $_SERVER dla informacji o żądaniu/serwerze, a $_SESSION do danych sesji użytkownika.

Pełne wyjaśnienie:

W PHP dane przesyłane z formularza są udostępniane w tzw. superglobalnych tablicach, które są dostępne w każdym zakresie programu. Jeśli formularz został wysłany metodą HTTP POST, to wartości pól (np. login, hasło, treść wiadomości) odczytuje się z tablicy $_POST. Dlatego odpowiedź "$_POST" jest właściwa dla pytania o dane formularza wysyłane metodą POST.

Odpowiedź "$_FILES" jest nieprawidłowa, ponieważ ta tablica zawiera wyłącznie informacje o przesyłanych plikach (np. nazwa pliku, typ MIME, rozmiar, ścieżka pliku tymczasowego). Używa się jej wtedy, gdy formularz ma pole typu file i ustawiono poprawne kodowanie formularza.

Odpowiedź "$_SERVER" również nie pasuje: przechowuje ona informacje o środowisku uruchomieniowym i samym żądaniu (np. metoda żądania, nagłówki, adres URL, IP klienta), ale nie jest standardowym miejscem na wartości pól formularza.

Odpowiedź "$_SESSION" bywa myląca, bo sesje kojarzą się z logowaniem i bezpieczeństwem, jednak ta tablica służy do przechowywania danych między żądaniami (stan aplikacji), a nie do odbioru danych przesłanych z formularza w danym żądaniu.

Warto też pamiętać o częstym nieporozumieniu: metoda POST nie gwarantuje "bezpieczeństwa" sama w sobie. Ukrywa parametry przed paskiem adresu, ale poufność zapewnia dopiero transmisja szyfrowana (HTTPS/TLS) oraz poprawna walidacja i filtrowanie danych po stronie serwera.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
$_POST to superglobalna tablica asocjacyjna w PHP, która zawiera dane przesłane w treści żądania HTTP metodą POST, np. wartości pól formularza. Klucze w tablicy zwykle odpowiadają atrybutom name elementów formularza.
Najczęściej odczytujesz je przez $_POST["nazwa_pola"]. Potem wykonujesz walidację (czy wartość istnieje, ma poprawny format) i dopiero używasz danych w aplikacji, np. zapis do bazy lub wysłanie e-maila.
POST nie szyfruje danych; tylko nie pokazuje ich w pasku adresu. Bezpieczeństwo poufności daje dopiero HTTPS/TLS. Dodatkowo potrzebne są: walidacja danych, filtrowanie, ochrona przed CSRF i poprawne uprawnienia po stronie serwera.
GET przekazuje parametry w URL, co ułatwia linkowanie i cache, ale ujawnia dane w adresie. POST przesyła dane w treści żądania i zwykle stosuje się go do operacji zmieniających stan (np. logowanie, zapis), jednak nadal wymaga HTTPS dla poufności.
$_FILES zawiera dane o plikach przesłanych z formularza (upload), np. nazwę pliku, typ, rozmiar i lokalizację pliku tymczasowego. Używa się jej tylko wtedy, gdy formularz zawiera pole wyboru pliku oraz poprawnie ustawione przesyłanie danych.
$_SERVER przechowuje informacje o środowisku i żądaniu, np. metodę żądania, ścieżkę, nagłówki, adres IP klienta czy nazwę hosta. To przydatne do routingu, logów i diagnostyki, ale nie jest typową tablicą na wartości pól formularza.
Nie bezpośrednio. $_SESSION służy do przechowywania danych pomiędzy kolejnymi żądaniami (stan aplikacji), np. identyfikator użytkownika po zalogowaniu. Dane z formularza odbierasz z $_POST, a dopiero później możesz część z nich zapisać do sesji.
Standardowo sprawdza się metodę żądania, np. porównując informację o metodzie z oczekiwaną wartością POST. Dopiero wtedy przetwarza się $_POST. To pomaga uniknąć obsługi danych, gdy użytkownik otworzył stronę bez wysłania formularza.
Częste pomyłki to: mylenie $_POST z $_GET, zakładanie że POST jest "bezpieczny" bez HTTPS, brak walidacji danych wejściowych oraz mylenie uploadu plików (który trafia do $_FILES) z normalnymi polami tekstowymi formularza.
Przećwicz: tworzenie formularza HTML, odbiór danych w PHP przez $_POST i $_GET, walidację (puste pola, format e-mail), podstawy sesji ($_SESSION) oraz obsługę uploadu ($_FILES). Dobrze działa też analiza krótkich fragmentów kodu.
info

To pytanie poprawnie rozwiązuje 71% zdających egzamin. średnio łatwe

Specjaliści zwracają uwagę: "$_POST to superglobalna tablica PHP zawierająca wartości pól formularza wysłanych metodą HTTP POST."

Źródła:

  • PHP Manual: Predefined Variables — $_POST, https://www.php.net/manual/en/reserved.variables.post.php (dostęp: 2026-03-02)
  • PHP Manual: Predefined Variables — $_FILES, https://www.php.net/manual/en/reserved.variables.files.php (dostęp: 2026-03-02)
  • PHP Manual: Predefined Variables — $_SERVER, https://www.php.net/manual/en/reserved.variables.server.php (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja PHP: rozdział o superglobalach i $_POST
  • Poradniki o różnicach GET vs POST oraz bezpieczeństwie (HTTPS, walidacja)
  • Ćwiczenia: budowa prostego formularza i odbiór danych w PHP

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego