⊗ppPmFmOFH 299 of 447 menu

Przetwarzanie formularza w jednym pliku PHP

W poprzedniej lekcji nasz formularz był umieszczony na jednej stronie, a wysyłany był na inną. W rzeczywistości nie jest to konieczne. Jeśli pozostawisz atrybut action pusty lub całkowicie go usuniesz, to formularz zostanie wysłany na tę samą stronę.

Jak to będzie działać: przy pierwszym wejściu na stronę wypełnimy formularz danymi i naciśniemy przycisk. Po tym strona odświeży się i jej kod wykona się ponownie, ale już z danymi formularza.

Spójrzmy na przykład. Załóżmy, że mamy w jednym pliku formularz i jego przetwarzanie:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Przy pierwszym wejściu na stronę funkcja var_dump wypisze pustą tablicę. A po wysłaniu formularza wypisze już dane formularza. Czyli za pierwszym razem $_GET będzie pusty, a za drugim razem - będzie zawierał dane formularza.

To może prowadzić do problemów. Załóżmy, na przykład, że będziemy wprowadzać do formularza liczby i chcemy wyświetlić sumę tych liczb na ekranie:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

W tym przypadku przy pierwszym wejściu na stronę zobaczymy błędy PHP, związane z tym, że tablica $_GET jest pusta, a my odwołujemy się do jej elementów.

Należy tu powiedzieć, że u was błędy mogą się nie pojawić w przeglądarce. W takim przypadku sprawdź, czy masz włączone wyświetlanie błędów PHP, a także upewnij się, że to twoje pierwsze wejście na stronę i w pasku adresu nie ma danych formularza.

Naprawmy problem. W tym celu dodamy warunek, w którym będziemy sprawdzać, czy formularz został wysłany.

Na przykład, można sprawdzać $_GET pod kątem niepustości. Jeśli $_GET nie jest pusty - to formularz został wysłany i można wykonywać sumowanie. W przeciwnym razie mamy jeszcze pierwsze wejście na stronę i sumowanie nie zostanie wykonane. A oto poprawiony kod:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Zapytaj użytkownika o nazwisko, imię i imię ojca. Po wysłaniu formularza wyświetl na ekranie wprowadzone dane.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć