⊗ppPmFmOFH 299 of 447 menu

Zpracování formuláře v jednom souboru PHP

V předchozí lekci byl náš formulář umístěn na jedné stránce, ale odesílán na jinou. Ve skutečnosti to není nutné. Pokud ponecháte atribut action prázdný nebo jej úplně odeberete, formulář se odešle na tutéž stránku.

Jak to bude fungovat: při prvním vstupu na stránku vyplníme formulář údaji a stiskneme tlačítko. Poté se stránka obnoví a její kód se znovu provede, ale již s daty formuláře.

Podívejme se na příklad. Předpokládejme, že máme v jednom souboru formulář a jeho zpracování:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Při prvním vstupu na stránku funkce var_dump vypíše prázdné pole. A po odeslání formuláře již vypíše data formuláře. To znamená, že poprvé bude $_GET prázdné, a podruhé - bude obsahovat data formuláře.

To může vést k problémům. Předpokládejme například, že do formuláře budeme zadávat čísla a chceme zobrazit součet těchto čísel:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

V tomto případě při prvním vstupu na stránku uvidíme chyby PHP, způsobené tím, že pole $_GET je prázdné, a my přistupujeme k jeho prvkům.

Zde je třeba říci, že se u vás chyby v prohlížeči nemusí objevit. V takovém případě zkontrolujte, zda máte zapnutý výpis chyb PHP, a také se ujistěte, že jste na stránku vstoupili poprvé a v adresním řádku nejsou data formuláře.

Pojďme problém opravit. K tomu přidáme podmínku, ve které zkontrolujeme, zda byl formulář odeslán.

Lze například zkontrolovat, zda $_GET není prázdné. Pokud $_GET není prázdné - formulář byl odeslán a lze provést sčítání. V opačném případě jde ještě o první vstup na stránku a sčítání provedeno nebude. A tak, zde je opravený kód:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Zeptejte se uživatele na příjmení, jméno a patronymikum (prostřední jméno). Po odeslání formuláře vypište na obrazovku zadané údaje.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout