Formuláre, spracovanie formulárov v PHP
Predpokladám, že sme vytvorili formulár HTML, ktorý sme odoslali, a teraz chceme spracovať údaje. O vytvorení formulára HTML existuje samostatný článok.
Prijímanie údajov - rôzne spôsoby
Spôsob odoslania formulára sa nastavuje priamo v HTML
Existujú 2 možnosti:
- GET - je viditeľný v adresnom riadku za otáznikom
Napríklad:
php.baraja.cz/search.php?query=formulare - POST - Skrytý (neviditeľný), väčšina formulárov sa posiela poštou
Potom ich musíme prečítať v PHP rovnakou metódou.
Získanie údajov od používateľa a ich prenos do skriptu
Základom je HTML formulár, ako ho vytvoriť sa dočítate v samostatnom článku.
Na začiatok predpokladajme jednoduchý formulár na zadanie mena používateľa:
Zobrazí sa textové pole, do ktorého zadajte meno a kliknite na tlačidlo Odoslať. Po kliknutí na tlačidlo sa obsah poľa odošle do skriptu welcome.php.
Teraz sa venujte samotnému spracovaniu v súbore welcome.php:
$username = $_GET['username'];echo 'Zadané meno je: ' . $username;
Všimnite si špeciálnu premennú $_GET. Ide o nadglobálnu premennú, ktorá obsahuje údaje z formulára a ku ktorej možno pristupovať ako k poľu.
Problémom tohto riešenia však je, že prijaté údaje nie sú bezpečné a podobný formulár možno ľahko napadnúť. Potenciálny útočník môže napríklad do poľa namiesto mena zadať javascriptový kód, ktorý sa zapíše na stránku a vykoná.
Preto musíme vždy upraviť všetky údaje používateľa pred ich odoslaním do kódu HTML:
$username = $_GET['username'] ?? "Neznámy;echo 'Zadané meno je: ' . htmlspecialchars($username);
Ďalšie spracovanie
S prijatými údajmi môžeme robiť čokoľvek a zaobchádzať s nimi ako s bežnou premennou.
Napríklad pridajte hodnotu do dvoch polí:
echo $_GET['x'] + $_GET['y'];
Alebo uložte do súboru, databázy, e-mailu, ...
Na tento účel sú užitočné nasledujúce funkcie:
- file_put_contents - funkcia na uloženie údajov do súboru
- MD5 - výpočet kontrolného súčtu, napríklad pre heslá
- Cookies - ukladanie údajov do cookies (malé súbory vo webovom prehliadači)