⊗ppPmSsFr 322 of 447 menu

Relace a formuláře v PHP

Předpokládejme, že máme dva soubory PHP. V souboru test1.php umístíme formulář, který se zeptá uživatele na dvě čísla:

<form method="GET"> <input name="num1"> <input name="num2"> <input type="submit"> </form>

Ve stejném souboru umístíme kód pro zpracování formuláře. V tomto kódu zapíšeme data ze vstupů do relace:

<?php session_start(); if (!empty($_GET)) { $_SESSION['num1'] = $_GET['num1']; $_SESSION['num2'] = $_GET['num2']; } ?>

Důležitý nuance: v souboru musí kód pro zpracování formuláře být umístěn před samotným formulářem. Proč: protože v tomto kódu pracujeme s relací, a to znamená, že před tím nesmí být žádný výstup na obrazovku.

Nyní v souboru test2.php najdeme součet čísel uložených v relaci:

<?php if (!empty($_SESSION)) { echo $_SESSION['num1'] + $_SESSION['num2']; } ?>

V jakém pořadí by to všechno mělo fungovat? Nejprve uživatel přejde na stránku test1.php, vyplní formulář a klikne na tlačítko. Poté se opět dostane na test1.php, ale již s odeslanými daty formuláře. Přitom se dostane do podmínky, ve které zapisujeme data z formuláře do relace.

Poté musí uživatel ručně přejít na stránku test2.php - a tam uvidí součet zadaných čísel.

Můžete se ptát: proč to takhle komplikovat? Vždyť šlo okamžitě odeslat formulář na stránku test2.php. Jde o to, že v tomto případě je výhoda v tom, že samotný formulář a kód jeho zpracování jsou umístěny na jedné stránce. To samozřejmě není vždy výhodné, ale někdy je to potřeba.

Na jedné stránce se pomocí formuláře zeptejte uživatele na příjmení, jméno a věk. Zapište tato data do relace. Při přechodu na jinou stránku tato data vypište na obrazovku.

Č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