Formuláre sú základným nástrojom pre zber údajov od používateľa na webe. V kombinácii s PHP umožňujú spracovať tieto údaje a reagovať na interakciu – od jednoduchých kontaktov až po zložité prihlasovanie, registráciu či objednávkové systémy. V tomto článku si prejdeme základy práce s formulármi v PHP, objasníme rozdiel medzi GET a POST a ukážeme si praktický príklad prihlasovacieho formulára.
HTML formulár obsahuje množstvo vstupných prvkov, ktoré PHP dokáže spracovať. Medzi najčastejšie patria:
<input type="text">
– textové pole<input type="password">
– pole pre heslo<input type="submit">
– odosielacie tlačidlo<select>
– rozbaľovací zoznam<textarea>
– viacriadkový textZákladný príklad HTML formulára:
<form action="spracuj.php" method="post">
Meno: <input type="text" name="meno"><br>
Heslo: <input type="password" name="heslo"><br>
<input type="submit" value="Prihlásiť sa">
</form>
Metóda odoslania určuje, ako sa údaje z formulára prenášajú na server:
index.php?meno=Eva
)Kedy použiť GET?
Kedy použiť POST?
Bezpečnosť: GET nikdy nepoužívajte na heslá alebo osobné údaje – tieto údaje sa môžu ukladať do histórie prehliadača a sú viditeľné v logoch servera.
PHP sprístupňuje údaje z formulára cez superglobálne polia:
$_GET["meno"]
– ak bol formulár odoslaný cez method="get"
$_POST["meno"]
– ak bol formulár odoslaný cez method="post"
Príklad:
<?php
$meno = $_POST["meno"];
$heslo = $_POST["heslo"];
echo "Vitaj, " . htmlspecialchars($meno);
?>
Funkcia htmlspecialchars()
zabraňuje XSS útokom a zabezpečí, že používateľom vložené HTML sa nezobrazí ako kód.
Pred tým, než uložíte alebo spracujete údaje, je nutné overiť ich platnosť:
empty($_POST["meno"])
filter_var()
)Príklad validácie mena:
if (empty($_POST["meno"])) {
echo "Meno je povinné!";
}
HTML formulár:
<form action="login.php" method="post">
Meno: <input type="text" name="meno"><br>
Heslo: <input type="password" name="heslo"><br>
<input type="submit" value="Prihlásiť">
</form>
login.php – spracovanie:
<?php
$meno = $_POST["meno"] ?? "";
$heslo = $_POST["heslo"] ?? "";
if ($meno === "admin" && $heslo === "tajne") {
echo "Úspešne prihlásený!";
} else {
echo "Nesprávne meno alebo heslo.";
}
?>
V praxi by ste používali databázu a heslá by boli hashované pomocou password_hash()
.
Spracovanie formulárov v PHP je základná zručnosť každého webového vývojára. Rozdiel medzi GET a POST ovplyvňuje bezpečnosť, použiteľnosť aj dizajn vašej aplikácie. Ak zvládnete čítať údaje z formulára, validovať ich a bezpečne ich spracovať, máte otvorenú cestu k budovaniu profesionálnych webových riešení.
Chcete sa naučiť PHP od základov, vrátane formulárov, databáz a AJAXu? Vyskúšajte náš kurz PHP – Programovanie dynamických webových stránok v PHP a úvod do AJAXu a začnite tvoriť vlastné webové aplikácie ešte dnes.
Viac informacií preberáme na kurze:
Kurz PHP - Programovanie dynamických webových stránok v PHP a úvod do AJAXu
Marián Knězek