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.
Przykład 7.1. Odczytywanie wartości z formularza
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>
|