Który opis odnosi się do metody POST wysyłania formularza?
Pytanie z egzaminu CKE, styczeń 2019 (arkusz E.14-X-19.01).
Metoda POST wysyła dane formularza w treści żądania HTTP, a nie w adresie. Dzięki temu hasło nie pojawia się w pasku adresu, w historii przeglądarki ani w zakładkach, a rozmiar danych nie jest ograniczony długością adresu. Dlatego stosuje się ją przy logowaniu, rejestracji, płatnościach i wysyłaniu plików.
W HTML wybór metody to atrybut formularza: <form action="logowanie.php" method="post">. W PHP dane odczytujesz z tablicy $_POST, np. $_POST["haslo"]. Pamiętaj, że POST ukrywa dane przed oczami, ale ich nie szyfruje. Prawdziwą ochronę w drodze do serwera daje dopiero połączenie HTTPS.
Wszystkie błędne odpowiedzi opisują metodę GET, nie POST. W metodzie GET dane formularza są doklejane do adresu po znaku zapytania, np. szukaj.php?fraza=kot&strona=2. Widać je w pasku adresu i w historii, więc nie nadają się do haseł.
Taki adres z parametrami można zapisać jako zakładkę albo wysłać komuś linkiem i zawsze da ten sam wynik. Dlatego GET dobrze sprawdza się w wyszukiwarkach i filtrach list. Wysłanie formularza POST nie zostawia danych w adresie, więc zakładka ich nie odtworzy.
Ograniczenie długości adresu również dotyczy GET, bo dane jadą w adresie. Wartość 255 znaków to dawny, zachowawczy limit, dziś przeglądarki i serwery przyjmują kilka tysięcy znaków. W PHP parametry GET odczytuje się z tablicy $_GET.
Jedno pytanie rozstrzyga sprawę: czy dane widać w adresie? Jeśli tak, to GET.