KWALIFIKACJA INF3 - STYCZEŃ 2015

PYTANIE NR 31.
W języku PHP zmienna $_GET jest zmienną
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
$_GET to zmienna predefiniowana (superglobalna) w PHP, która udostępnia dane przesyłane metodą GET, zwykle jako parametry zapytania widoczne w adresie URL (query string). Opisy wskazujące na dane niewidoczne w adresie dotyczą typowo metody POST i tablicy $_POST.

Pełne wyjaśnienie:

$_GET w PHP należy do tzw. zmiennych superglobalnych, czyli predefiniowanych tablic dostępnych w skrypcie bez potrzeby ich deklarowania w zasięgu funkcji. Zawiera ona dane wejściowe przesłane w ramach żądania HTTP metodą GET.

W praktyce oznacza to, że do $_GET trafiają najczęściej:

  • parametry umieszczone w adresie URL po znaku ? (tzw. query string), np. page=2, q=php,
  • dane z formularza HTML wysłanego metodą GET (także widoczne w URL).

Dlatego poprawny jest opis mówiący, że jest to zmienna predefiniowana używana do przekazywania danych do skryptu poprzez adres strony (URL). To dobrze oddaje typową cechę GET: dane są częścią adresu i można je zobaczyć w pasku przeglądarki, zapisać w historii, a także łatwo skopiować link.

Dlaczego pozostałe odpowiedzi są błędne?

  • Stwierdzenie o "gromadzeniu wartości formularza po nagłówkach zlecenia HTTP" i że "danych nie można zobaczyć w adresie" pasuje do POST (zwykle $_POST), nie do $_GET.
  • Opis "zdefiniowaną przez twórcę strony" jest nieprawdziwy: nazwa $_GET jest zarezerwowana i dostarczana przez PHP. Programista może jedynie odczytywać jej elementy (klucze odpowiadają nazwom parametrów).
  • Odpowiedź mówiąca o "zwykłej" zmiennej pomija fakt, że $_GET jest mechanizmem wbudowanym w PHP i ma określone przeznaczenie w obsłudze danych wejściowych.

Wskazówka egzaminacyjna: kojarz GET z "linkiem" i widocznością parametrów w URL, a POST z "wysyłką w treści żądania" i brakiem parametrów w pasku adresu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To predefiniowana (superglobalna) tablica w PHP, w której znajdują się dane przekazane metodą GET, najczęściej jako parametry w adresie URL (query string). Odczytujesz je np. przez $_GET['nazwa'], gdy w URL istnieje odpowiedni parametr.
Do $_GET trafią dane formularza tylko wtedy, gdy formularz ma ustawione method="get". Wtedy pola formularza są kodowane do parametrów URL i stają się widoczne w pasku adresu oraz dostępne w PHP w tablicy $_GET.
Metoda GET przenosi dane jako część adresu URL po znaku ?, w postaci par klucz=wartość rozdzielonych &. To ułatwia udostępnianie linków, ale oznacza też, że parametry mogą trafić do historii przeglądarki i logów serwera.
$_GET zwykle zawiera parametry widoczne w URL (metoda GET), a $_POST dane przesłane w treści żądania (metoda POST), których nie widać w pasku adresu. W praktyce GET częściej służy do filtrów i nawigacji, a POST do wysyłania formularzy zmieniających dane.
Nie. $_GET to nazwa zarezerwowana i predefiniowana przez PHP (superglobal). Programista może definiować własne zmienne, ale nie "tworzy" mechanizmu $_GET — jedynie korzysta z danych, które PHP umieszcza w tej tablicy na podstawie żądania HTTP.
Dane z $_GET traktuj jako niezaufane: waliduj typ i zakres (np. liczby), stosuj listy dozwolonych wartości, a przy użyciu w SQL korzystaj z zapytań parametryzowanych. Przy wyświetlaniu w HTML stosuj odpowiednie kodowanie wyjścia, aby ograniczyć ryzyko XSS.
GET sprawdza się, gdy dane mają opisywać zasób lub filtr (np. wyszukiwanie, sortowanie, stronicowanie) i mają być "linkowalne". POST jest lepszy, gdy operacja zmienia stan (np. zapis do bazy) lub gdy nie chcesz, aby dane były częścią URL.
Gdy adres wygląda np. strona.php?id=5, w PHP odczytasz wartość przez $_GET['id']. W praktyce dodaj sprawdzenie istnienia i walidację, np. czy parametr jest liczbą, zanim użyjesz go w logice aplikacji lub zapytaniu do bazy danych.
Jeśli parametr nie istnieje, to odpowiedni klucz nie będzie ustawiony w $_GET. Odwołanie bez sprawdzenia może powodować ostrzeżenia. Dlatego stosuje się sprawdzenie, np. czy klucz jest ustawiony, i wartości domyślne, gdy parametr nie został przekazany.
Najczęściej myli się $_GET z $_POST (widoczność danych w URL) oraz uznaje $_GET za "zwykłą" zmienną tworzoną przez programistę. Częsty błąd to też brak rozróżnienia między metodą HTTP GET a samą tablicą superglobalną w PHP.
info

Około 81% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Specjaliści zwracają uwagę: "$_GET to zmienna predefiniowana (superglobalna) w PHP, która udostępnia dane przesyłane metodą GET, zwykle jako parametry zapytania widoczne w adresie URL (query string)."

Źródła:

  • PHP Manual: "Superglobals" – https://www.php.net/manual/en/language.variables.superglobals.php (dostęp 2026-03-04)
  • PHP Manual: "$_GET" – https://www.php.net/manual/en/reserved.variables.get.php (dostęp 2026-03-04)
  • MDN Web Docs: "GET" (HTTP request method) – https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET (dostęp 2026-03-04)

Materiały:

  • Dokumentacja PHP: Superglobals i opis $_GET
  • Materiały o HTTP i budowie URL (query string, parametry)
  • Kurs podstaw PHP obejmujący obsługę formularzy i zmiennych globalnych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego