POST
Webové aplikaci lze předat vstup pomocí dvou metod - GET a POST.
Data dorazí do PHP skriptu vždy v asociativním poli, které se jmenuje podle metody, kterou data přišla.
V adresáři php si vytvořím soubor kalkulacka.php
Metoda POST
Metoda POST se obvykle používá pro odesílání formulářů.
V prvním bude formulář, kam uživatel zadá dvě čísla do textových polí a odešle tlačítkem Sečti.
Data se odešlou druhému souboru, což bude PHP skript, který provede výpočet.
Vytvoříme si HTML formulář 'kalkulacka.html'
Soubor kalkulacka.html
Vítejte v kalkulačce, zadejte 2 čísla a získejte jejich součet.
<!DOCTYPE html>
<html lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kalkulačka</title>
</head>
<body>
<p>Vítejte v kalkulačce, zadejte 2 čísla a získejte jejich součet.</p>
<form method="POST" action="soucet.php">
<input name="cislo1" type="text" /><br />
<input name="cislo2" type="text" /><br />
<input type="submit" value="Sečti" />
</form>
</body>
</html>
Na HTML stránce máme formulář a v něm pár vstupních textových polí.
Atribut method na hodnotě POST udává způsob, jakým se data z formuláře odešlou.
Atribut action označuje skript, který formulář zpracuje.
Pokud atribut action neuvedeme, odešle se formulář do téhož souboru, ve kterém se nachází.
soucet.php
Vytvoříme si soubor soucet.php
V souboru kalkulacka.html odkazujeme na tento soubor.
<!DOCTYPE html>
<html lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kalkulačka</title>
</head>
<body>
<?php
$soucet = $_POST['cislo1'] + $_POST['cislo2'];
echo("Součet: $soucet");
?>
</body>
</html>
Kalkulacka
Pokud neuvedu action="soucet.php" bude výsledek zobrazen přímo na stránce.
<!DOCTYPE html>
<html lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kalkulačka</title>
<form method="POST">
<input name="cislo1" type="text" /><br />
<input name="cislo2" type="text" /><br />
<input type="submit" value="Sečti" />
</form>
<hr>
<section class="centred string lettrSacing">
<?php
$soucet = $_POST['cislo1'] + $_POST['cislo2'];
echo("Součet: $soucet");
?>
</section>
</body>
</html>
Zatím neni ošetřen případ bez zadání čísla, takže to vede k chybě
Vítejte v kalkulačce, zadejte 2 čísla a získejte jejich součet.
Metoda POST
Velkou výhodou metody POST je skutečnost, že odesílaná data nejsou vidět v adresním řádku.