PHP, díl 5. – formuláře

8. března 2000
Computer 4/00 SDÍLET NA FACEBOOKU TWEETNOUT
Práce s daty z formulářů je v PHP velmi snadná. Podíváme se na jednoduché příklady.
Práce s daty z formulářů je v PHP velmi snadná. Obecně lze říci, že každý údaj předaný formulářem je na další stránce dostupný v proměnné, jejíž název je shodný s parametrem name.

Nejlepším řešením, jak situaci vysvětlit, je příklad, který nahradí zdlouhavé vysvětlování:

Na stránce 1 (stranka1.htm) je formulář se dvěma textovými vstupními poli (text a password), jedním "zatrhávacím" čtverečkem (checkbox) , dvojicí přepínacích koleček (radio) a dvěma tlačítky - pro odeslání údajů (submit) a jejich vymazání (reset):

<html>
<head>
	<title>Stránka 1 s formulářem</title>
</head>
<body>
<h3>Vyplňte prosím tento formulář</h3>
<form method=post action="stranka2.php3">
Jméno: <input type="Text" name="jmeno"><br>
Heslo: <input type="Password" name="heslo"><br>
Jste student? <input type="Checkbox" name="student" value="ano"><br>
Vaše pohlaví: <input type="Radio" name="pohlavi" value="muz" checked> muž<BR>
<input type="Radio" name="pohlavi" value="zena">žena: <br>
<input type="Submit" value="ODESLAT">
<input type="Reset" value="VYMAZAT">
</form>
</body>
</html>

Po odeslání formuláře bude zavolána stránka (stranka2.php3), ve které budeme mít v proměnné $jmeno textový řetězec z pole Jméno, v proměnné $heslo bude zadané heslo. Tady je potřeba varovat: i když se ve formuláři objevují místo textu hvězdičky, text je předáván nezašifrovaný. Pokud tedy na volané stránce použijete příkaz

echo $heslo;

vypíše se jeho obsah v celé své kráse a přečte si ho každý, kdo vám zrovna kouká přes rameno! Jestliže tento údaj hodláte třeba uložit do databáze (na ty se podíváme v dalších dílech), měli byste heslo zašifrovat. Zde přímo PHP nabízí několik funkcí (Crypt, MD5, nebo primitivní Base64).

K zatrhávacímu políčku se přistupuje takto: políčku je pomocí parametru value přiřazena hodnota "ano", která je však předána pouze v případě, že je políčko zatrženo, jinak je předán prázdný řetězec.

V praxi potom stačí na otestování jednoduchá podmínka:

if ($student=="ano") ...

U radio buttonů je situace podobná. Celá skupina má jednotný název (v tomto případě pohlavi), který je pak použit jako název proměnné, jež obsahuje hodnotu zadanou za parametrem value příslušející tomu jedinému zatrženému radio buttonu. Pokud tedy respondent je muž, proměnná $pohlavi bude obsahovat text "muz".

Další prvky, které můžete ve formulářích použít a v PHP pak zpracovat:

hidden - U tohoto prvku se zadává pouze name a value. Slouží pouze k předání "skrytých" údajů, o kterých uživatel nemusí (nebo by neměl) vědět.

Např.: <input type="hidden" name="pomocnyudaj" value="123456">

Ve formuláři, který vidí uživatel, se opticky nijak neprojeví (hidden = skrytý).

Select - Efektní možnost jak nabídnout uživateli možnost výběru z více položek. Jednotlivé položky se pak uvádějí pomocí volby option.

např.:

<select name="predplatne">
<option value="a">typ A
<option value="b">typ B
<option value="c">typ C
</select>
Pokud chceme dát uživateli možnost vybrat si najednou více položek, stačí v tagu select přidat parametr multiple. V tomto případě je ale nutno k názvu přidat hranaté závorky "[ ]".

První tag by tedy vypadal takto:

<select name="predplatne[]" multiple>

V PHP na další stránce pak budeme mít pole $predplatne.

Textarea - Tento vstupní prvek slouží k zadávání delších údajů. Jeho výhodou je, že může mít řádků a sloupců, kolik si zadáte, navíc je zde možnost rolování.

<textarea name="dlouhytext" rows=10 cols=50>   (10 řádků, 50 sloupců)
V poli může být přímo nějaký text zadaný programátorem.
</textarea>
file - Toto je vstupní prvek do "pokročilých" formulářů, kterým můžeme odeslat zároveň s formulářem nějaký soubor.

Příklad:

<form action="stranka2.php3" method=post enctype="multipart/form-data">
<input type=file name=soubor accept="image/*">
</form>
Atribut enctype udává kódování při přenosu, v tomto případě je nutný, stejně jako použití metody post.

Parametr accept udává typ souborů, které je možno přenášet (v tomto případě obrázky).

V PHP pak se souborem pracujeme s pomocí 4 proměnných, jejichž jména jsou odvozena od parametru name. V našem případě v proměnné $soubor bude jméno dočasného (je nutno ručně uložit, jinak se po skončení skriptu smaže) souboru, kam PHP data uložil. V proměnné $soubor_size bude velikost přeneseného souboru, v proměnné $soubor_type bude informace o typu souboru a v proměnné $soubor_name bude původní jméno souboru.

Na závěr
Pro přenos formulářových dat slouží dvě metody (method=post a method=get).

Metoda post se používá, pokud formulář obsahuje více dat. Typickým (a nevyhnutelným) případem je přenos souboru - viz výše.

Pro menší formuláře je možno použít metodu get, data jsou pak připojena k samotnému URL volaného skriptu, např.:

http://www.root.cz/search.phtml?word=design

Z hlediska PHP (přístup k proměnným) není mezi nimi žádný rozdíl.

Příště se začneme věnovat jazyku SQL, tedy databázím a jejich použitím pomocí PHP.

Diskuze (5) Další článek: Computer 4/00

Témata článku: Software, Programování, PHP, MD5, Radio 1, Post, Díl, Původní jméno, Celá skupina, Hidden, Reset, Form, Textový řetězec, Button, Radio, Textové pole, Formulář, Select, Password, Ramen, Software na Heureka.cz



Konec českého poskytovatele internetu v přímém přenosu. Připomíná to krachující energetické firmy
Lukáš Václavík
CETINPoskytovatelé internetuPřipojení k internetu
Google není jen vyhledávač: 15 užitečných funkcí, o kterých možná ani nevíte

Google není jen vyhledávač: 15 užitečných funkcí, o kterých možná ani nevíte

** Google umí kromě vyhledávání i spoustu dalších věcí ** Vybrali jsme více než 15 užitečných funkcí a schopností ** Stačí zadat do vyhledávače ta správná klíčová slova

Karel Kilián
TipyVyhledávačeGoogle
Před 30 lety byla odeslána první SMS. I když jsou textovky vynález z mobilního pravěku, rychlý konec je nečeká

Před 30 lety byla odeslána první SMS. I když jsou textovky vynález z mobilního pravěku, rychlý konec je nečeká

** Už tři desítky let datlujeme do mobilu písmenka a posíláme jako SMS ** Češi ve své době SMS milovali, byla to totiž nejméně drahá služba ** I přes obstarožnost této služby se s ní jen tak loučit nebudeme

Jan Láska
VýročíSMS
10 nejpovedenějších mobilů za posledních 10 let. Vzpomínáme na srdcovky, kterých jsme se nechtěli vzdát

10 nejpovedenějších mobilů za posledních 10 let. Vzpomínáme na srdcovky, kterých jsme se nechtěli vzdát

** Výrobci dnes na trh chrlí jeden telefon za druhým ** V nepřeberné šedi ale tu a tam vyčnívají mobilní perly ** Vzpomeňte s námi na telefony, které jste dlouho nechtěli odložit

Martin Chroust
LegendyHistorieSmartphony
Elektromagnetické pušky jsou postrachem dronů ve válce. Vypadají jako ze sci-fi

Elektromagnetické pušky jsou postrachem dronů ve válce. Vypadají jako ze sci-fi

** Ukrajinské síly používají několik typů lehkých protidronových pušek ** Na fotografiích z bojů se nejčastěji vyskytují EDM4S a KVS G-56 ** Malý dron „sestřelí“ na vzdálenost až několika kilometrů

Jakub Čížek
UkrajinaZbraněUAVDrony
Vědci zkoumali přesnost měření stavby těla u hodinek od Samsungu. Výsledky všechny překvapily

Vědci zkoumali přesnost měření stavby těla u hodinek od Samsungu. Výsledky všechny překvapily

** Chytré hodinky běžně bereme jako informativní měřidla ** Jak si však stojí ve srovnání s profesionálními měřiči ** Při měření stavby těla se na hodinky můžete spolehnout

Martin Chroust
Galaxy Watch4Měření
Máte rádi malé telefony? Pak si oblíbíte tohoto třípalcového drobečka, který není větší než platební karta

Máte rádi malé telefony? Pak si oblíbíte tohoto třípalcového drobečka, který není větší než platební karta

** Dnešní telefony se předhánějí v tom, který z nich bude větší ** Malé telefony na trhu skoro vyhynuly... ** Čínská značka si připravila telefon do dlaně s třípalcovým displejem

Martin Chroust
InfraportKompaktní velikostSmartphony
Facebook má nejspíš vaše telefonní číslo, i když jste mu ho nikdy nedali. Tímto tajným nástrojem ho můžete smazat

Facebook má nejspíš vaše telefonní číslo, i když jste mu ho nikdy nedali. Tímto tajným nástrojem ho můžete smazat

**Meta poskytuje nástroj na vymazání telefonních čísel a e-mailových adres z Facebooku a Instagramu **V minulosti Mark Zuckebrg popřel, že by Facebook vytvářel stínové profily **Metě teď můžete sebrat klíčové iddentifikátory, pořád o vás ale nejspíš ví mnoho dalšího

Petr Urban
MetaSledováníSociální sítě