KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 35.
W formularzu dokumentu PHP istnieje pole <input name="im">. Po wprowadzeniu przez użytkownika ciągu znaków "Janek", w celu dodania zawartości pola do bazy danych, w tablicy $_POST zawarty jest element
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W PHP tablica $_POST jest tablicą asocjacyjną.
Kluczem (indeksem) elementu jest wartość atrybutu name z pola <input>, a wartością jest tekst wpisany przez użytkownika. Dla name="im" i wpisu "Janek" otrzymujemy element $_POST["im"] równy "Janek".

Pełne wyjaśnienie:

W formularzach HTML atrybut name w polu <input> określa nazwę zmiennej, pod jaką przeglądarka prześle dane do skryptu. Po wysłaniu formularza metodą POST PHP udostępnia te dane w superglobalnej tablicy $_POST.

Kluczowa zasada jest prosta: name staje się kluczem (indeksem) tablicy, a to, co użytkownik wpisze, staje się wartością. Dlatego dla pola <input name="im"> i wpisanego tekstu "Janek" skrypt otrzyma parę: klucz "im" → wartość "Janek", czyli $_POST["im"] == "Janek".

Odpowiedź "Janek o indeksie im." opisuje właśnie tę relację: "im" to indeks/klucz, a "Janek" to zawartość (wartość) przypisana do tego klucza.

Pozostałe odpowiedzi są błędne z typowych powodów:

  • "im o indeksie Janek." odwraca zależność: traktuje wpisaną wartość jako klucz, a nazwę pola jako wartość. W standardowym przesyłaniu formularza jest odwrotnie.
  • "im z kolejnym numerem indeksu." sugeruje tablicę indeksowaną liczbowo. $_POST dla pojedynczych pól formularza działa jak tablica asocjacyjna, więc nie ma "kolejnego numeru" wynikającego z tego pola.
  • "Janek z kolejnym numerem indeksu." powiela błąd tablicy numerycznej i dodatkowo nie uwzględnia, że to atrybut name wyznacza klucz.

W praktyce, aby dodać dane do bazy, najpierw pobiera się wartość np. $im = $_POST["im"];, następnie wykonuje walidację i zapis (najlepiej zapytaniem parametryzowanym). Sama struktura $_POST pozostaje jednak taka sama: klucze pochodzą z name, wartości z tego, co wpisano w formularzu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Do $_POST trafia para klucz–wartość, gdzie kluczem jest wartość atrybutu name (tu: "im"), a wartością jest tekst wpisany w pole (np. "Janek"). W praktyce odczytasz to jako $_POST["im"].
Atrybut name nadaje nazwę danym przesyłanym z formularza. Po stronie PHP ta nazwa staje się kluczem tablicy (np. w $_POST lub $_GET). Bez name przeglądarka zwykle nie wyśle wartości tego pola jako osobnego elementu.
Indeksy w $_POST pochodzą z nazw pól formularza, bo muszą być stałe i przewidywalne dla programisty. Wpisany tekst jest zmienny i jest wartością. Dzięki temu w kodzie zawsze odczytujesz $_POST["im"], niezależnie od tego, co użytkownik wpisze.
Dla standardowych pól formularza $_POST działa jak tablica asocjacyjna: kluczami są nazwy pól (name), a wartościami dane użytkownika. Indeksy liczbowe pojawiają się dopiero przy specyficznym zapisie nazw, np. name="im[]".
$_GET używa się, gdy formularz wysyła dane metodą GET (parametry w URL). Stosuje się to np. w wyszukiwarkach lub filtrowaniu, gdy parametry mają być widoczne w adresie. Do danych wrażliwych i większych formularzy częściej wybiera się POST.
Najczęściej sprawdza się to warunkiem: isset($_POST["im"]). To pozwala odróżnić brak pola od sytuacji, gdy pole istnieje, ale ma pustą wartość. Dodatkowo warto wykonać walidację długości i dozwolonych znaków.
Jeśli atrybut method nie jest ustawiony, przeglądarka domyślnie użyje GET. Wtedy dane trafią do $_GET, a nie do $_POST. Na egzaminie warto zwracać uwagę, czy w treści zadania jest wskazane $_POST lub metoda POST.
Typowe błędy to: odwrócenie klucza i wartości, literówki w nazwie klucza (np. "im" vs "imi"), brak sprawdzenia isset(), oraz brak walidacji/sanitizacji danych. Częsty problem to też zakładanie, że zawsze jest POST, mimo że formularz wysyła GET.
Najbezpieczniej: pobrać wartość z $_POST, zwalidować (np. długość, znaki), a następnie zapisać przez zapytania parametryzowane (prepared statements). Nie należy sklejać SQL z tekstem użytkownika, bo grozi to SQL injection.
Przećwicz schemat: HTML <form> + <input name="..."> → odczyt w PHP przez $_POST/$_GET → walidacja → komunikat lub zapis. Rozwiązuj krótkie zadania: sprawdzanie isset(), obsługa kilku pól, oraz podstawy bezpieczeństwa (walidacja i zapytania parametryzowane).
info

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

Według specjalistów z branży: "W PHP tablica $_POST jest tablicą asocjacyjną.Kluczem (indeksem) elementu jest wartość atrybutu name z pola &lt;input&gt;, a wartością jest tekst wpisany przez użytkownika."

Źródła:

  • PHP Manual: Predefined Variables – $_POST, https://www.php.net/manual/en/reserved.variables.post.php (dostęp: 02.03.2026)
  • PHP Manual: Variables from external sources, https://www.php.net/manual/en/language.variables.external.php (dostęp: 02.03.2026)
  • MDN Web Docs: The HTML input element, https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input (dostęp: 02.03.2026)

Materiały:

  • Dokumentacja PHP: superglobals i $_POST
  • Kurs podstaw PHP: formularze i odbiór danych
  • Materiały o tablicach asocjacyjnych w PHP

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego