Formuláře v PHP
Z MiS
(Rozdíly mezi verzemi)
m (Přidán odkaz na HTTP přesměrování v PHP) |
m (Přidána kategorie Category:HTML) |
||
(Není zobrazena 1 mezilehlá verze od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | [[Category:VSE]][[Category:Informatika]][[Category:PHP]][[Category:Programování]] | + | [[Category:VSE]][[Category:Informatika]][[Category:PHP]][[Category:Programování]][[Category:HTML]] |
Řádka 45: | Řádka 45: | ||
; Související stránky | ; Související stránky | ||
− | * [[HTTP přesměrování v PHP]] | + | * [[HTTP přesměrování v PHP]], [[Ošetření vstupních proměnných]] |
Aktuální verze z 30. 1. 2017, 10:35
Vytvoření formuláře
- K vytvoření formuláře používáme jazyk HTML.
- Viz w3schools.com → HTML Forms.
Zpracování dat
Uložení dat do souboru
- Pro uložení dat z formuláře používáme typicky databázi nebo soubor.
- Pro zápis do souboru použijeme funkci
file_put_contents(...)
. - Parametry funkce:
- název souboru... do kterého data uložíme
- text... který se má zapsat
- přepínače... volitelný parametr.
FILE_APPEND
zařídí, že pokud soubor už existuje, nepřepíše se, ale data se přiřadí na konec.
- Následně provedeme přesměrování stránky tak, aby uživatel opětovným načtením stránky (klávesa F5) nemohl data zapsat vícekrát.
- Před použitím dat z formuláře bychom měli provést ošetření vstupních proměnných.
- Data pro ukládání bychom měli vždy předávat metodou POST, nikoli GET.
- Ukázka skriptu action_store_data.php
<?php $novyRadek = filter_var($_POST["jmeno"], FILTER_SANITIZE_FULL_SPECIAL_CHARS)."\t"; if ($_POST["souhlasi"] == "ano") $novyRadek .= "ano\t"; else $novyRadek .= "ne\t"; $novyRadek .= "\n"; file_put_contents($NAZEV_SOUBORU, $novyRadek, FILE_APPEND); header("Location: /vyreseno.php"); die(); ?>
- Poznámky
-
filter_var(...)
... ošetří vstupní text tak, aby nemohl obsahovat speciální znaky, které by šly zneužít pro code injection a podobné techniky. -
\t
a\n
... znaky, zastupující tabulátor, resp. konec řádku. -
header(...)
... odešle prohlížeči hlavičku protokolu HTTP s uvedeným názvem. V tomto případě požádá prohlížeč, aby načetl uvedenou stránku (nejspíš zde bude výpis hlášení, že zápis byl úspěšně proveden).
- Související stránky