Formuláre sú neoddeliteľnou súčasťou webových stránok. Používajú sa na získavanie údajov od používateľov, ako je prihlasovanie, registrácia alebo odosielanie správ. V tomto článku si ukážeme, ako pracovať s formulármi v PHP – od ich vytvorenia až po spracovanie a validáciu údajov.
Formulár je HTML element, ktorý umožňuje používateľom zadávať a odosielať údaje. PHP sa stará o ich spracovanie na strane servera.
Formuláre umožňujú:
Najprv si vytvoríme jednoduchý HTML formulár:
<form method="POST" action="spracovanie.php"> Meno: <input type="text" name="meno"><br> Email: <input type="email" name="email"><br> <input type="submit" value="Odoslať"> </form>
method="POST"
– Určuje, že údaje budú odoslané metódou POST.action="spracovanie.php"
– Určuje súbor, ktorý spracuje formulár.name="meno"
– Každý vstup má názov, pomocou ktorého sa neskôr pristupuje k údajom.Vytvoríme súbor spracovanie.php
, ktorý spracuje odoslané údaje:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $meno = htmlspecialchars($_POST["meno"]); $email = htmlspecialchars($_POST["email"]); echo "Vaše meno: " . $meno . "<br>"; echo "Váš email: " . $email; } ?>
$_SERVER["REQUEST_METHOD"] == "POST"
– Kontroluje, či bol formulár odoslaný metódou POST.htmlspecialchars()
– Pomáha chrániť pred XSS útokmi tým, že prekonvertuje špeciálne znaky.Pred uložením údajov do databázy je dôležité overiť ich správnosť:
<?php $chyby = []; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["meno"])) { $chyby[] = "Meno je povinné."; } if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) { $chyby[] = "Neplatný formát emailu."; } if (empty($chyby)) { echo "Údaje sú platné."; } else { foreach ($chyby as $chyba) { echo $chyba . "<br>"; } } } ?>
Pri ukladaní údajov do databázy používajte vždy pripravené SQL dotazy:
<?php $conn = new mysqli("localhost", "root", "", "databaza"); $stmt = $conn->prepare("INSERT INTO uzivatelia (meno, email) VALUES (?, ?)"); $stmt->bind_param("ss", $meno, $email); $stmt->execute(); $stmt->close(); $conn->close(); ?>
Používajte htmlspecialchars()
, aby ste zabránili vkladaniu škodlivého JavaScript kódu.
GET posiela údaje cez URL, POST ich posiela skryte. POST je bezpečnejší pre citlivé údaje.
Použite presmerovanie po spracovaní údajov:
header("Location: dakujeme.php"); exit;
Pridajte enctype="multipart/form-data"
do značky form
a spracujte súbor pomocou $_FILES
.
filter_var()
, ktorá pomáha pri validácii údajov, ako sú emaily alebo URL adresy.Ak máte záujem o prezenčné alebo online školenie programovania v PHP, pozrite si našu ponuku na www.like-it.sk. Naše kurzy vedú skúsení odborníci, ktorí vám pomôžu zvládnuť základy aj pokročilé koncepty programovania.