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.
Viac informacií preberáme na kurze:
Kurz PHPMYSQLAJAX - Tvorba webových stránok od základov v PHP a MySQL
Marián Knězek