Aby pobrać dane z formularza HTML tak, aby nie były widoczne w adresie URL, należy zastosować:
Dobrze. Metoda POST przesyła dane w treści żądania, więc nie pojawiają się w adresie URL.
Źle. PDO służy do obsługi bazy danych w PHP, nie decyduje o sposobie wysłania formularza.
Źle. Pojedyncze kontrolki bez formularza nie wyślą danych na serwer.
Źle. GET dopisuje dane do adresu URL - są widoczne w pasku przeglądarki i w historii.
Formularz HTML może wysyłać dane jedną z dwóch metod: GET albo POST. Metoda POST umieszcza dane w treści (body) żądania HTTP, dlatego nie trafiają one do adresu URL i nie są widoczne w pasku przeglądarki ani zapisywane w historii. Z tego powodu używa się jej do logowania, formularzy z danymi osobowymi czy dłuższych treści. Aby dane formularza nie pojawiły się w URL, wybiera się więc metodę POST (atrybut method="post").
Kluczem jest tu sposób, w jaki formularz wysyła dane. Metoda GET dopisuje je bezpośrednio do adresu URL w postaci par nazwa=wartość, więc są od razu widoczne w pasku adresu, w historii i logach serwera - dokładnie tego mieliśmy uniknąć. Wybranie samych kontrolek bez formularza w ogóle nie zadziała: to formularz odpowiada za zebranie i wysłanie danych na serwer. Biblioteka PDO dotyczy zupełnie innego etapu - służy do komunikacji PHP z bazą danych, a nie do decydowania, jak dane opuszczają przeglądarkę. Aby ukryć je przed adresem URL, formularz musi korzystać z metody POST, która przenosi dane w treści żądania.