BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 50 | UU: 3396

Rozdział 7. Przekazywanie zmiennych między stronami

Formularze

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.

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>
Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker