Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Tworzenie stron WWW Programowanie webowe PHP

Słowa kluczowe: $_GET w PHP $_POST w PHP Formularz HTML

Przedstawiona definicja formularza została zastosowana na stronie internetowej, która przesyła dane do pliku napisanego w języku PHP. W jakiej tablicy będą dostępne dane z tego formularza?

<form action="plik.php" method="get">
A. $_GET
B. $_COOKIE
C. $_POST
D. $_ACTION
W tym formularzu kluczowy jest atrybut method=get, dlatego dane po wysłaniu formularza będą dostępne w PHP w superglobalnej tablicy $_GET. Przeglądarka dokleja wtedy pary nazwa=wartość do adresu URL, na przykład plik.php?login=jan&wiek=18. Po stronie PHP można je odczytać np. jako $_GET['login'] albo $_GET['wiek'], oczywiście zakładając, że pola formularza miały odpowiednie atrybuty name. To jest bardzo praktyczne przy wyszukiwarkach, filtrach produktów, paginacji albo prostych linkach z parametrami, bo taki adres można skopiować, zapisać w zakładkach i przesłać komuś dalej. Z mojego doświadczenia warto pamiętać, że metoda GET nie nadaje się do haseł, tokenów ani danych wrażliwych, bo parametry widać w pasku adresu, historii przeglądarki i logach serwera. W dobrych praktykach webowych GET stosuje się głównie do pobierania danych i operacji bez skutków ubocznych, a POST do wysyłania danych zmieniających stan aplikacji, np. rejestracji czy dodania komentarza. Samo action=plik.php wskazuje tylko plik odbierający żądanie, a o tablicy w PHP decyduje właśnie method.
W tym zadaniu łatwo pomylić kilka mechanizmów PHP, bo wszystkie wyglądają podobnie: zaczynają się od znaku dolara i podkreślenia. Jednak o miejscu, w którym PHP zapisze dane z formularza, decyduje atrybut method w znaczniku form. Skoro ustawiono method=get, parametry trafiają do adresu URL i są dostępne przez superglobalną tablicę $_GET. Tablica $_POST byłaby użyta dopiero wtedy, gdy formularz miałby method=post. To częsty błąd myślowy: ktoś widzi formularz i automatycznie zakłada POST, bo formularze kojarzą się z wysyłaniem danych. Technicznie formularz może wysyłać dane obiema metodami, tylko ich zastosowanie jest inne. $_COOKIE również nie pasuje, bo ciasteczka są przesyłane przez przeglądarkę jako zapisane wcześniej małe porcje danych, np. identyfikator sesji, preferencje użytkownika albo zgody. Nie są standardowym miejscem odbioru pól formularza po kliknięciu przycisku wysyłania. $_ACTION natomiast nie jest standardową superglobalną tablicą PHP. Atrybut action w HTML wskazuje adres skryptu, do którego formularz zostanie wysłany, ale nie tworzy żadnej tablicy $_ACTION. Moim zdaniem najlepiej zapamiętać to prosto: action mówi dokąd wysłać, method mówi jak wysłać, a w PHP metoda GET oznacza odczyt z $_GET. Przy okazji warto walidować i filtrować dane wejściowe, nawet jeśli pochodzą tylko z prostego formularza, bo użytkownik może ręcznie zmienić parametry w adresie.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.