Vitajte v tretej časti nášho seriálu o programovaní v PHP! V predchádzajúcej časti sme sa naučili, ako používať podmienky a cykly, ktoré sú základom každého dynamického programovania. Dnes sa posunieme o krok ďalej a naučíme sa, ako pracovať s formulármi a spracovávať dáta, čo je nevyhnutné pri tvorbe interaktívnych webových stránok.
Prečo sú formuláre dôležité?
Formuláre sú základným spôsobom, ako umožniť používateľom odosielať údaje na server. Tieto údaje môžu byť čokoľvek, od prihlasovacích informácií cez komentáre až po údaje na vyhľadávanie. PHP potom tieto údaje spracuje a podľa nich vykoná rôzne akcie – uloží ich do databázy, vypíše výsledok alebo vykoná nejaké spracovanie na základe vstupov.
Základy HTML formulára
Predtým, než začneme s PHP, musíme vytvoriť jednoduchý HTML formulár. Formuláre v HTML sa vytvárajú pomocou značky <form>
, ktorá obsahuje rôzne vstupné polia, ako sú textové polia, tlačidlá a prepínače. Tu je základný príklad HTML formulára:
<form action="spracovanie.php" method="POST">
Meno: <input type="text" name="meno"><br>
E-mail: <input type="email" name="email"><br>
<input type="submit" value="Odoslať">
</form>
action
určuje, kam sa majú údaje odoslať. V tomto prípade ich posielame na skriptspracovanie.php
.method
určuje spôsob odosielania údajov. Najčastejšie sa používa POST alebo GET.- Každé vstupné pole má atribút name, ktorý určuje názov premennej, pod ktorou sa hodnota odošle na server.
Spracovanie formulára pomocou PHP
Keď používateľ odošle formulár, údaje z formulára sa odošlú na server a PHP ich môže spracovať. Predpokladajme, že sme vytvorili súbor spracovanie.php
, ktorý tieto údaje spracuje.
Príklad jednoduchého spracovania formulára v PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$meno = htmlspecialchars($_POST['meno']);
$email = htmlspecialchars($_POST['email']);
echo "Ďakujeme, $meno. Vaša e-mailová adresa je $email.";
}
?>
V tomto skripte sa:
- Kontroluje, či bol formulár odoslaný metódou POST pomocou
$_SERVER["REQUEST_METHOD"]
. - Dáta z formulára sú získané pomocou superglobálnej premennej
$_POST
, ktorá obsahuje všetky hodnoty odoslané cez POST metódu. - Funkcia
htmlspecialchars()
je použitá na zabezpečenie proti útokom typu XSS (Cross-Site Scripting), tým, že prevádza špeciálne znaky na HTML entity.
GET vs POST
V PHP môžeme na získavanie dát z formulára použiť dve hlavné metódy: GET a POST.
- GET: Dáta sú odosielané ako súčasť URL adresy (napr.
http://example.com/?meno=Janko&email=janko@example.com
). Táto metóda je vhodná pre vyhľadávania alebo odkazy, ale nie je bezpečná pre citlivé údaje, ako sú heslá. - POST: Dáta sú odosielané v tele HTTP požiadavky, čo je bezpečnejšie pre citlivé údaje. POST je preferovaná metóda pre odosielanie formulárov, ktoré obsahujú osobné informácie.
Validácia údajov
Validácia údajov je dôležitým krokom pri spracovaní formulárov. Cieľom je overiť, či používateľ zadal správne a kompletné údaje. Môžeme použiť základné kontroly, ako napríklad:
- Kontrola, či boli všetky požadované polia vyplnené.
- Overenie formátu e-mailovej adresy.
- Zabezpečenie, že sa čísla nachádzajú v správnom rozsahu.
Príklad validácie:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["meno"])) {
echo "Meno je povinné.";
} else {
$meno = htmlspecialchars($_POST["meno"]);
if (!preg_match("/^[a-zA-Z-' ]*$/", $meno)) {
echo "Iba písmená a medzery sú povolené.";
}
}
if (empty($_POST["email"])) {
echo "E-mail je povinný.";
} else {
$email = htmlspecialchars($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Neplatná e-mailová adresa.";
}
}
}
?>
V tomto príklade kontrolujeme, či sú polia „meno“ a „email“ vyplnené, a používame funkciu filter_var()
na overenie, či je e-mail v správnom formáte.
Práca s viacnásobnými vstupmi
Ak máte v formulári viacnásobné vstupy rovnakého typu (napríklad viacero zaškrtávacích políčok), môžete údaje spracovať pomocou polí.
HTML formulár:
<form action="spracovanie.php" method="POST">
Vyberte svoje obľúbené farby:<br>
<input type="checkbox" name="farby[]" value="Červená"> Červená<br>
<input type="checkbox" name="farby[]" value="Zelená"> Zelená<br>
<input type="checkbox" name="farby[]" value="Modrá"> Modrá<br>
<input type="submit" value="Odoslať">
</form>
Spracovanie v PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['farby'])) {
foreach ($_POST['farby'] as $farba) {
echo "Vybrali ste farbu: $farba <br>";
}
} else {
echo "Nevybrali ste žiadnu farbu.";
}
}
?>
Záver 3. časti
V tejto časti sme sa naučili, ako vytvoriť formulár, spracovať údaje pomocou PHP a validovať vstupy od používateľov. Formuláre sú kľúčovou súčasťou väčšiny webových aplikácií, preto je dôležité ich správne používať a zabezpečiť. V nasledujúcej časti sa pozrieme na prácu s databázami pomocou MySQL, čo nám umožní ukladať údaje z formulárov do databázy.
Pokračujte v seriáli:
- 4. diel: Pripojenie k MySQL databáze
- 5. diel: Tvorba jednoduchej webovej aplikácie v PHP
Naša cesta za zvládnutím PHP pokračuje, a čoskoro sa dozviete, ako prepojiť svoje PHP aplikácie s databázou, čo otvára možnosti pre komplexnejšie webové projekty.