4. Článek – 1. část: zpracování formulářů prostřednictvím php.
Author: Dmitry Burobin
Rozhodl jsem se, že seznámení s php začneme popisem a zpracováním formulářů, protože jsou nedílnou součásti každého webu.
Co rozebereme:
1) Atributy tegu form.2) Metody POST a GET.
3) Zpracování formulářů.
Atributy tegu form
Začal bych strukturou tagu form, neboli zákaldami jazyku html. První věc je, že tag form je párový, tzn. že na konci musi být uzavřen:
<form></form>
pak musíme zadat metodu odesílaní dat a případně vyplnít atribut action, tento atribut přesměruje Vás na stránku, kde odeslaná data se budou zpracovávat.
<form action=”nejaky_skript.php” mathod=”POST nebo GET” name=”neco”>
ted` Vám vysvětlím co vlastně dělaji metody POST a GET.
</form>
- Metoda HTTP GET kóduje data do adresy URL. Takto kódovaná data jsou viditelná v okně prohlížeče a umožńují přidat výsledek formuláře například do oblíbených položek.
- Metoda HTTP POST zakóduje data přímo do hlavičky požadavku HTTP a protože prostřednictvím formuláře získáváme důvěrné informace (např. Heslo), raději budeme používat tuto metodu.
Základní zpracování formulářu
Takže vytvoříme soubor s rozlíšením .html, nazveme ho index.html a uložíme do složky www. V něm si vytvoříme jednoduchy formulář:
<html>
vídime tady pár tagů input s textovým vstupem a heslem, pak přepinač a jedno vstupní textové pole. Aby to vypadalo trochu líb, tak jsem ten formulář dal do tabulky a použil atribut style a zadal rozměry. Pro odesílaní dat jsem použil metodu HTTP POST a do atributu action jsem zadal zpracovani.php, takže když zmačkneme tlačítko odeslat, tak to nas přesměruje na stránku zpracovani.php, kterou ted´ vytvoříme. Výsledkem by mělo být tohle.
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<form action="zpracovani.php" method="POST">
<table style="250px; border:3px solid black;">
<tr><td style="width:100px;">Jméno:</td>
<td style="width:150px;"> <input type="text"
name="jmeno" value=""></td></tr>
<tr><td style="width:100px;">Príjmení:</td>
<td style="width:150px;"> <input type="text"
name="prijmeni" value=""></td></tr>
<tr><td style="width:100px;">heslo:</td>
<td style="width:150px;"> <input type="password"
name="pass"></td></tr>
<tr><td style="width:100px;">Chcete dostavat nove clanky?</td>
<td style="width:150px;"> Ano: <input type="radio"
name="clanek" value="Ano" checked="checked">
Ne: <input type="radio"
name="clanek" value="Ne"></td></tr>
<tr><td style="width:100px;">Zprava:</td>
<td style="width:150px;"><textarea rows="5" cols="25" wrap="soft"
name="text"></textarea></td></tr>
<tr><td colspan="2" style="width:250px; text-align:right;"><input type="submit" name="go" value="Odeslat"></td></tr>
</table>
</form>
</body>
</html>
Ted´ vytvoříme soubor zpracovani.php a uložime ho do stejné složky www. Ten zatím bude obsahovat jen jednu podmínku, která otestuje zda jste zmáčkli tlačítko odeslat:
zaprve testujeme zda je tlačítko odeslat zmáčknute, pomocí funkci isset, tato funkce jenom ověři, zda je parametr $_POST['go'] zadaný. A jak jste určitě pochopili pomocí této konstrukci $_POST['parametr'] volám data z našeho formuláře, ten parametr je vlastně atribut name, který jsme zvolili pro každý teg input, textarea, submit a tak dále, u všech tegů. Dal jsem ještě před funkci isset vykřičník ten znamená zápor, totiž hovořim jestli není zmáčknuto tlačítko Odeslat. Potom tímto $_POST['go'] != 'Odeslat' otestujeme jestli hodnota tlačítka Odeslat je opravdu Odeslat. No a to všechno je parametrem konstrukci if...else..., tato konstrukce se používa, řekl bych, u všech programovacích jazýků a znamená: jestli jsou splněný podmínky, v našem případě to co jsem popsal výše, tak ten skript bude zpracovávát kód který je mezi složenými závorkami po funkci if, jestli ne tak přejde do bloku else.<?php
if(!isset($_POST['go']) || ($_POST['go'] != 'Odeslat'))
{
header("location:index.html");
}
else
{
echo 'Jméno: '.$_POST['jmeno'].' '.$_POST['prijmeni'].'<br>';
echo 'Heslo: '.$_POST['pass'].'<br>';
echo 'Chcete dostavat nove clanky nebo ne?: '.$_POST['clanek'].'<br>';
echo 'Zprava: '.$_POST['text'].'<br>';
echo '<a href="index.html">zpět</a>';
}
?>
Další řádek nas jenom přesměruje zpět na náš formulář, jestli nebude splněna podmínka.
A poslední blok kódu jenom vyvedé data na obrazovku, která jsme zadali prostřednictvím formuláře. Nezapomínejte, když používate operátor echo a chcete vyvést nějakou proměnnou tak mezi textem a proměnnou musí být apostrof a tečka.
Jak to funguje si můžete prohlednout zde
Závěr
Takže už umíme zpracovávát data, která jsou nám posílana přes formulář, ale určitě takle ošetřený formulář je k ničemu, takže v druhé části tohoto článku Vám ukážu jak ošetřit a otestovat všechny pole, abyste pak mohli použít podobný formulář i na vlastním webu. Přeju Vám hezký den a doufám, že se Vám moji články líbi