Jesteś tutaj: webmade.org >> kursy online >> kurs php >> Część 7
autor: Leszek 'leon' Krupiński, ostatnia modyfikacja: 2007-10-12
Jeśli użytkownik musi podać jakieś dane (np. w celu dodania ich do bazy danych), to jedyną metodą jest pobranie ich ze standardowego formularza HTML. W większości języków programowania należy używać dodatkowych bibliotek aby uzyskać dostęp do danych przesyłanych z formularza. W PHP zostało to maksymalnie uproszczone. Wszystkie dane z formularza trafiają do odpowiednich tablic asocjacyjnych o nazwach kluczy takich, jak nazwy pól formularza. Jeśli w konfiguracji PHP włączona zostanie opcja register_globals (jest ona domyślnie wyłączona od wersji 4.2.0), to stworzone zostaną od razu zmienne o nazwach takich jak nazwy pól formularza.
Są dwie metody przekazywania parametrów do innych stron: metoda "GET" i metoda "POST". Metody GET używa się kiedy parametrów jest niewiele. Dzieje się tak ponieważ parametry przekazuje się za pomocą adresu URL (np. http://www.coś.pl/strona.php?parametr1=wartość1¶metr2=wartość2), którego długość jest ograniczona. Należy też pamiętać że parametry są widoczne w pasku adresu przeglądarki, więc tej metody nie należy używać jeśli przekazywane są np. hasła. Jak widać, sam adres od parametrów oddzielany jest za pomocą znaku zapytania, a kolejne pary parametr=wartość za pomocą znaku ampersand ("&"). Tą metodę można wykorzystać także przy przekazywaniu parametrów przez odnośnik (zobacz dalej).
Metoda "POST" do przekazywania parametrów wykorzystuje nagłówek zapytania - wystarczy wiedzieć, że metoda ta umożliwia przekazywanie dużo większych parametrów, a także że parametrów nie widać w pasku przeglądarki.
Zależnie od metody, zmienne trafiają do odpowiednich tablic asocjacyjnych. Dane przesłane metodą GET trafiają do tablicy $_GET (lub $HTTP_GET_VARS w wersjach starszych niż 4.1.0) a dane z metody POST to tablicy $_POST (lub $HTTP_POST_VARS). Tablice $_GET i $_POST są superglobalne. Oznacza to, że są widoczne w każdym miejscu kodu PHP bez konieczności użycia składni globals.
Plik jeden.html
<html> <head> <title>Test formularza</title> </head> <body> <form action="dwa.php" method="GET"> Imię: <input type=text name="imie"/><br/> Nazwisko: <input type=text name="nazwisko"/><br/> Proszę o fakturę do zamówienia: <input type=checkbox name="faktura"/><br/> Chcę zamówić:<br/> <input type=radio name=zamow value="kola"/>Coca-colę<br> <input type=radio name=zamow value="fanta"/>Fantę<br> <input type=radio name=zamow value="sprite"/>Sprite'a<br> <input type=submit value="Wyślij"/> </form> </body> </html>
Plik dwa.php
<html> <head> <title>Wyniki</title> </head> <body> Imię: <?php echo $_GET['imie']?><br> Nazwisko: <?php echo $_GET['nazwisko']?><br> Faktura: <?php echo ($_GET['faktura'] == 'on' ? 'Tak' : 'Nie')?><br> Zamówienie: <?php switch($_GET['zamow']) { case "kola": echo "Coca-cola"; break; case "fanta": echo "Fanta"; break; case "sprite": echo "Sprite"; break; } ?> </body> </html>
Leszek 'leon' Krupiński
szukaj: formularze kurs php
Zagadnienia poruszane w tej części kursu:
© 2004-2008 copyright by webmade.org