PHP – zasílání dat z formuláře Mgr. Lenka Švancarová
Formulář (jak data odeslat) Zadej první číslo: <input type="text" /><br /> Zadej druhé číslo: </form>
Formulář (jak data odeslat) Ve formuláři musí být tlačítko k odeslání dat. <input type="submit" value= "Text na tlačítku" /> Všechna pole, jejichž hodnoty budeme odesílat, si musíme jedinečně pojmenovat (název budeme potřebovat při přijímání dat). Pozor, na velikosti písmen v názvu záleží. name="Nazev_pole" <input type="text" name="cislo1" />
Formulář (jak data odeslat) Značce form přidáme atribut action, jehož hodnota je adresa PHP skriptu, který přijme zaslaná data. Pokud bude PHP kód uložen ve stejném souboru jako formulář, lze vynechat. method, buď s hodnotou post nebo get. get zašle data jako součást adresy stránky (v URL za otazníkem) post zašle data odděleně
Formulář (jak data odeslat) <form action="cisla.php" method="post" > Zadej první číslo: <input type="text" name="cislo1" /><br /> Zadej druhé číslo: <input type="text" name="cislo2" /><br /> <input type="submit" value="Odeslat" /> </form>
PHP (jak data přijmout) Pro metodu POST: $promenna = $_POST[" Nazev_pole "]; $c1 = $_POST["cislo1"]; Do proměnné $c1 se uloží data, která uživatel zadal do formulářového pole pojmenovaného cislo1. Obdobně pro metodu GET: $promenna = $_GET[" Nazev_pole "]; $c1 = $_GET["cislo1"];
PHP (jak data přijmout) $c1 = $_POST["cislo1"]; $c2 = $_POST["cislo2"]; echo "<p id='clean'> První číslo je $c1. "; echo "Druhé číslo je $c2. </p>"; ?> Data z formuláře jsou nejprve přijata, následně uložena do proměnných a poté zpracována. V tomto případě vypsána na stránku.
PHP (tvorba souboru s příponou php) V případě uložení skriptu do nového souboru V PSPaDu si vytvoříme soubor podle šablony XHTML Do body vložíme skript Uložíme pod názvem s příponou php (v našem příkladu cisla.php) (Formulář je uložen v souboru s příponou html. Po odeslání dat se dostaneme na stránku cisla.php, která vypíše odstavec textu.)
PHP (tvorba souboru s příponou php) V případě vložení skriptu do souboru s formulářem Skript vložíme pod formulář a uložíme pod názvem s příponou php (v našem příkladu cisla.php) Příkazy skriptu se spustí před odesláním dat (už při prvním načtení stránky), proto přidáme if ($_POST) {příjem a zpracování dat} if ($_GET) {příjem a zpracování dat} a tím zajistíme příjem a zpracování dat, až když budou data opravdu odeslána.
PHP (jak data přijmout bezpečně) Zkusme si na vstup do formuláře zadat např. <h1> 12 </h1>. Číslo 12 bude napsáno nadpisem jedna. Uvědomme si, že tag byl vykonán. Pokud do pole formuláře vloží uživatel zdrojový kód skriptu, ten může být taky vykonán, a tak nám může šikovný uživatel i škodit. Jak tomu zamezit?
PHP (jak data přijmout bezpečně) Funkce htmlspecialchars(data) převede speciální znaky (&, < atd.), které obsahují data, na HTML entity. Pokud takto převedená data uložíme do proměnné a následně vypíšeme, zobrazí se přesně to, co zadal uživatel. Vysvětleno také zde: http://php.baraja.cz/index.php?kategorie=zacatek&page=bezpecna-aplikace
PHP (jak data přijmout bezpečně) if ($_POST) { $c1 = htmlspecialchars($_POST["cislo1"]); $c2 = htmlspecialchars($_POST["cislo2"]); echo "<p id='clean'> První číslo je $c1. "; echo "Druhé číslo je $c2. </p>"; } ?>
PHP – práce s daty z formuláře Uživatel zadá do formuláře svoji výšku v cm a váhu v kg a skript spočte a vypíše hodnotu BMI (BMI=tělesná váha (kg) / tělesná výška2 (m)) Uživatel zadá do formuláře délky stran obdélníku a z rozklikávací nabídky vybere S nebo o. Skript vypočte a vypíše požadované.
PHP – práce s daty z formuláře Uživatel zadá do formuláře číslo a skript určí a vypíše, zda je zadané číslo nula, kladné, nebo záporné. Uživatel zadá do formuláře celé číslo (nejlépe mezi 0 a 10 včetně) a skript vypíše malou násobilku zadaného čísla. (Řeš postupně všemi třemi cykly.)
PHP – práce s daty z formuláře Naprogramuj. Vstupní data zadávej z formuláře Uživatel zadá číslo a skript vypíše buď je to známka (pro čísla 1, 2, 3, 4, 5), nebo není to známka. Skript určí, zda uživatelem zadané číslo leží v intervalu (2,7>. Uživatel zadá tři kladná čísla – třetí největší. Vypište Je to trojúhelník, nebo Není to trojúhelník.