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

Aby pobrać dane z formularza HTML, tak aby nie były one widoczne w adresie URL, należy zastosować

A. metodę GET.
B. same kontrolki bez użycia formularza.
C. jedynie funkcje z biblioteki PDO.
D. metodę POST.

Pytanie z egzaminu CKE, styczeń 2023 (arkusz EE.09-SG-23.01).

Metoda POST jest właściwym wyborem, gdy dane z formularza HTML mają zostać przesłane do serwera bez dopisywania ich do adresu URL. W praktyce oznacza to, że zawartość pól formularza trafia do ciała żądania HTTP, a nie do części zapytania po znaku ?. Dlatego w pasku adresu nie zobaczysz np. login=jan&haslo=123, jak często dzieje się przy metodzie GET. To jest podstawowa różnica przy obsłudze formularzy w aplikacjach webowych, szczególnie w PHP, gdzie dane odebrane metodą POST są dostępne zwykle przez tablicę $_POST. Z mojego doświadczenia warto jednak pamiętać o jednej ważnej rzeczy: POST nie szyfruje danych sam z siebie. On tylko nie pokazuje ich w URL. Jeżeli formularz przesyła hasło, e-mail, dane osobowe albo zamówienie, dobrą praktyką branżową jest użycie protokołu HTTPS, walidacja danych po stronie serwera oraz ochrona przed CSRF. POST stosuje się typowo przy logowaniu, rejestracji, dodawaniu komentarzy, wysyłaniu formularza kontaktowego czy zapisywaniu danych do bazy. Moim zdaniem to jedna z tych rzeczy, które trzeba kojarzyć odruchowo przy pracy z formularzami.
Jeżeli wybrana została inna możliwość niż metoda POST, to najpewniej pomyliły się dwa różne sposoby przesyłania danych w protokole HTTP albo rola narzędzi używanych już po stronie serwera. Metoda GET służy do pobierania zasobów i bardzo często dokleja dane formularza do adresu URL jako tzw. query string, czyli fragment po znaku ?. To bywa wygodne przy wyszukiwarkach, filtrowaniu produktów, paginacji albo linkach, które użytkownik może skopiować i wysłać komuś dalej. Nie jest to jednak dobre rozwiązanie, gdy chodzi o ukrycie danych przed paskiem adresu, historią przeglądarki czy logami serwera. Sam fakt, że GET jest prosty, nie znaczy że pasuje do każdego formularza.

Same kontrolki, takie jak pola tekstowe, przyciski radiowe czy checkboxy, nie rozwiązują problemu przesyłania danych. One tylko pozwalają użytkownikowi coś wpisać albo zaznaczyć. Potrzebny jest mechanizm wysłania żądania do serwera, najczęściej formularz z odpowiednio ustawioną metodą albo obsługa JavaScript wykonująca żądanie HTTP. Bez tego dane mogą zostać w przeglądarce i serwer w ogóle ich nie otrzyma.

PDO też nie ma tutaj właściwego zastosowania. Biblioteka PDO w PHP służy do komunikacji z bazą danych, wykonywania zapytań SQL i bezpiecznej pracy z parametrami, na przykład przez prepared statements. To ważne narzędzie, ale działa dopiero wtedy, gdy aplikacja serwerowa już dane otrzyma. Typowy błąd myślowy polega na wrzucaniu do jednego worka formularzy, PHP i baz danych. Formularz przesyła dane przez HTTP, PHP je odbiera, a PDO może je później zapisać w bazie. Każdy etap ma swoją rolę.

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.