Post

Z PHPEdia.pl

(Przekierowano z POST)

Metoda wysłania danych do skryptu najczęściej poprzez formularz HTML. Po wysłaniu formularza dane są dostępne w tablicy globalnej $_POST. W przeciwieństwie do metody GET nie widzimy jakie dane zostały wysłane do skryptu, widzimy tylko wynik działania.

Formularz wysyłający dane metodą POST

<form method="post" action="odbior.php">
  <input name="nazwisko" />
  <input type="submit" />
</form>

W pliku odbior.php dane są dostępne w tablicy $_POST

echo $_POST['nazwisko']; //wyświetli dane wpisane w polu "nazwisko"

Tablice w POST

Istnieje możliwość formularzem przesłać dużą ilość danych. Jednak praktycznie wydaje się to nielogiczne. Po co tworzyć kilka pól różnymi nazwami jeżeli chodzi nam o te same dane? W tym celu możemy podpowiedzieć że dane wysyłane do skryptu należą do tego samego klucza np:

<form method="post" action="odbior.php">
  Podaj imie: <input name="imie" />
  Podaj nazwisko: <input name="nazwisko" />
  Podaj linki do swoich prac: 
  <input name="prace[]" />
  <input name="prace[]" />
  <input name="prace[]" />
  <input name="prace[]" />
  <input type="submit" />
</form>

zamiast:

<form method="post" action="odbior.php">
  Podaj imie: <input name="imie" />
  Podaj nazwisko: <input name="nazwisko" />
  Podaj linki do swoich prac: 
  <input name="praca1" />
  <input name="praca2" />
  <input name="praca3" />
  <input name="praca4" />
  <input type="submit" />
</form>

W skrypcie również łatwiej jest się odwołać:

echo "Dziękujemy <b>".$_POST['imie']." ".$_POST['nazwisko']." za dodanie swoich prac";
echo "<br /> Oto jakie prace dodałeś:<br />";
//wykorzystamy pętlę [[foreach]]
foreach ($_POST['prace'] as $praca) echo $praca."<br />";

Formularz możemy jeszcze bardziej uatrakcyjnić dodając wstawki z javascritp'u dzięki którym użytkownik określiłby ile prac chce dodać. Ale to już osobny temat.

Zobacz też