Práce s formuláři v PHP

Formuláře jsou nedílnou součástí webových stránek. Používají se k získávání údajů od uživatelů, jako je přihlašování, registrace nebo odesílání zpráv. V tomto článku si ukážeme, jak pracovat s formuláři v PHP – od jejich vytvoření až po zpracování a validaci údajů.

Co je formulář v PHP?

Formulář je HTML element, který umožňuje uživatelům zadávat a odesílat data. PHP se stará o jejich zpracování na straně serveru.

Jaký má práce s formuláři praktický význam?

Formuláře umožňují:

1. Vytvoření základního HTML formuláře

Nejprve si vytvoříme jednoduchý HTML formulář:

<form method="POST" action="zpracování.php"> Jméno: <input type="text" name="jméno"><br> Email: <input type="email" name="email"><br> <input type="submit" value="Odeslat"> </form>

Vysvětlení:

2. Zpracování údajů v PHP

Vytvoříme soubor zpracování.php, který zpracuje odeslaná data:

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $jméno = htmlspecialchars($_POST["jméno"]); $email = htmlspecialchars($_POST["email"]); echo "Vaše jméno: " . $jméno . "<br>"; echo "Váš email: " . $email; } ?>

Vysvětlení:

  • $_SERVER["REQUEST_METHOD"] == "POST" – Kontroluje, zda byl formulář odeslán metodou POST.
  • htmlspecialchars() – Pomáhá chránit před XSS útoky tím, že překonvertuje speciální znaky.

3. Validace údajů

Před uložením údajů do databáze je důležité ověřit jejich správnost:

<?php $chyby = []; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["jméno"])) { $chyby[] = "Jméno je povinné."; } if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) { $chyby[] = "Neplatný formát emailu."; } if (empty($chyby)) { echo "Údaje jsou platné."; } else { foreach ($chyby as $chyba) { echo $chyba . "<br>"; } } } ?>

4. Ochrana proti bezpečnostním hrozbám

SQL Injection

Při ukládání dat do databáze používejte vždy připravené SQL dotazy:

<?php $conn = new mysqli("localhost", "root", "", "databaza"); $stmt = $conn->prepare("INSERT INTO uzivatelé (jméno, email) VALUES (?, ?)"); $stmt->bind_param("ss", $jméno, $email); $stmt->execute(); $stmt->close(); $conn->close(); ?>

Cross-Site Scripting (XSS)

Používejte htmlspecialchars(), abyste zabránili vkládání škodlivého JavaScript kódu.

Nejčastější otázky

1. Jaký je rozdíl mezi metodami GET a POST?

GET posílá data přes URL, POST je posílá skrytě. POST je bezpečnější pro citlivá data.

2. Jak zabránit opětovnému odeslání formuláře po obnovení stránky?

Použijte přesměrování po zpracování dat:

header("Location: dakujeme.php"); exit;

3. Jak povolit odesílání souborů přes formulář?

Přidejte enctype="multipart/form-data" do značky form a zpracujte soubor pomocí $_FILES.

Top 5 zajímavých faktů o práci s formuláři v PHP

  1. PHP umožňuje snadné zpracování dat i bez databáze – můžete je například ukládat do souboru.
  2. Metoda POST dokáže poslat mnohem více dat než GET.
  3. Pokud nepoužíváte bezpečnostní opatření, formuláře mohou být zranitelné vůči hackerům.
  4. Formuláře mohou být dynamicky generovány pomocí PHP a JavaScriptu.
  5. PHP nabízí funkci filter_var(), která pomáhá při validaci údajů, jako jsou emaily nebo URL adresy.

Chcete se naučit PHP do hloubky?

Máte-li zájem o prezenční nebo online školení programování v PHP, podívejte se na naši nabídku na www.like-it.sk. Naše kurzy vedou zkušení odborníci, kteří vám pomohou zvládnout základy i pokročilé koncepty programování.

Jak začít programovat?

Úvod do programování pro každého bez předchozích znalostí.

Stáhněte si náš ebook teď výjimečně zdarma!!!

Viac informacií preberáme na kurze:

Marián Knězek