webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> kursy online >> kurs php >> Część 7

Formularze

autor: Leszek 'leon' Krupiński, ostatnia modyfikacja: 2007-10-12

szukaj: formularze formularze kurs php kurs php

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&parametr2=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

Zagadnienia poruszane w tej części kursu:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org