Práca s formulármi v PHP

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.

Čo je formulár v PHP?

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.

Aký má práca s formulármi praktický význam?

Formuláre umožňujú:

1. Vytvorenie základného HTML formulára

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>

Vysvetlenie:

2. Spracovanie údajov v PHP

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;
}
?>

Vysvetlenie:

3. Validácia údajov

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>";
        }
    }
}
?>

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

SQL Injection

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();
?>

Cross-Site Scripting (XSS)

Používajte htmlspecialchars(), aby ste zabránili vkladaniu škodlivého JavaScript kódu.

Najčastejšie otázky

1. Aký je rozdiel medzi metódami GET a POST?

GET posiela údaje cez URL, POST ich posiela skryte. POST je bezpečnejší pre citlivé údaje.

2. Ako zabrániť opätovnému odoslaniu formulára po obnovení stránky?

Použite presmerovanie po spracovaní údajov:

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

3. Ako povoliť odosielanie súborov cez formulár?

Pridajte enctype="multipart/form-data" do značky form a spracujte súbor pomocou $_FILES.

Top 5 zaujímavých faktov o práci s formulármi v PHP

  1. PHP umožňuje jednoduché spracovanie údajov aj bez databázy – môžete ich napríklad ukladať do súboru.
  2. Metóda POST dokáže poslať omnoho viac údajov ako GET.
  3. Ak nepoužívate bezpečnostné opatrenia, formuláre môžu byť zraniteľné voči hackerom.
  4. Formuláre môžu byť dynamicky generované pomocou PHP a JavaScriptu.
  5. PHP ponúka funkciu filter_var(), ktorá pomáha pri validácii údajov, ako sú emaily alebo URL adresy.

Chcete sa naučiť PHP do hĺbky?

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.

Ako začať programovať?

Úvod do programovania pre každého bez prechádzajúcich znalostí.

Stiahnite so náš ebook teraz výnimočne zdarma!!!

Marián Knězek

 

Súvisiace články: