Formuláře v PHP

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Vytvoření stránky.)
 
m (Uložení dat do souboru: Doplněn odkaz na Ošetření vstupních proměnných)
Řádka 19: Řádka 19:
 
** přepínače... volitelný parametr. <code>FILE_APPEND</code> zařídí, že pokud soubor už existuje, nepřepíše se, ale data se přiřadí na konec.
 
** přepínače... volitelný parametr. <code>FILE_APPEND</code> 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.
 
* 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.
 +
 +
<div class="Varovani">
 +
# Před použitím dat z formuláře bychom měli provést [[Ošetření vstupních proměnných| 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.
 +
</div>
 
   
 
   
 
<div class="Priklad">
 
<div class="Priklad">
Řádka 34: Řádka 39:
 
  ?>
 
  ?>
 
; Poznámky:
 
; Poznámky:
* <code>filter_var(...)</code>... ošetří vstupní text tak, aby nemohl obsahovat speciální znaky, které by šly zneužít pro code injection a podobné techniky.
+
* <code>filter_var(...)</code>... [[Ošetření vstupních proměnných| ošetří vstupní text]] tak, aby nemohl obsahovat speciální znaky, které by šly zneužít pro code injection a podobné techniky.
 
* <code>\t</code> a&nbsp;<code>\n</code>... znaky, zastupující tabulátor, resp. konec řádku.
 
* <code>\t</code> a&nbsp;<code>\n</code>... znaky, zastupující tabulátor, resp. konec řádku.
 
* <code>header(...)</code>... odešle prohlížeči hlavičku protokolu HTTP s&nbsp;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).
 
* <code>header(...)</code>... odešle prohlížeči hlavičku protokolu HTTP s&nbsp;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).
 
</div>
 
</div>

Verze z 10. 12. 2014, 15:52


Vytvoření formuláře


Zpracování dat


Uložení dat do souboru

  1. Před použitím dat z formuláře bychom měli provést ošetření vstupních proměnných.
  2. 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\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).
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje