Košík je prázdný

V digitální éře se kontaktní formuláře staly nezbytnou součástí téměř každé Webové stránky. Umožňují uživatelům snadno se spojit s vlastníky webu bez nutnosti přímého zadávání e-mailové adresy. Tento článek se zaměřuje na vytvoření skriptu pro odesílání zpráv z webového formuláře na e-mail pomocí PHP.

Základy kontaktního formuláře

Než se pustíme do kódování, je důležité pochopit základní strukturu kontaktního formuláře. Kontaktní formulář se obvykle skládá z několika polí, jako je jméno, e-mail, předmět a zpráva. HTML kód pro jednoduchý kontaktní formulář může vypadat následovně:

<form action="posli_email.php" method="post">
  <label for="jmeno">Jméno:</label><br>
  <input type="text" id="jmeno" name="jmeno" required><br>
  <label for="email">E-mail:</label><br>
  <input type="email" id="email" name="email" required><br>
  <label for="predmet">Předmět:</label><br>
  <input type="text" id="predmet" name="predmet" required><br>
  <label for="zprava">Zpráva:</label><br>
  <textarea id="zprava" name="zprava" rows="4" required></textarea><br>
  <input type="submit" value="Odeslat">
</form>

PHP skript pro zpracování formuláře

PHP je serverový skriptovací jazyk, který umožňuje zpracování dat odeslaných z webového formuláře. Skript posli_email.php začne ověřením, že data byla odeslána metodou POST, a poté zkontroluje, zda jsou všechna požadovaná pole vyplněna.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $jmeno = strip_tags(trim($_POST["jmeno"]));
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $predmet = strip_tags(trim($_POST["predmet"]));
    $zprava = trim($_POST["zprava"]);

    if (empty($jmeno) OR empty($zprava) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Oops! Něco se pokazilo. Ujistěte se, že jste vyplnili všechna pole správně.";
        exit;
    }

    $recipient = "váš@email.cz";
    $subject = "Nová zpráva z webového formuláře: $predmet";
    $email_content = "Jméno: $jmeno\n";
    $email_content .= "Email: $email\n\n";
    $email_content .= "Zpráva:\n$zprava\n";

    $email_headers = "From: $jmeno <$email>";

    if (mail($recipient, $subject, $email_content, $email_headers)) {
        echo "Děkujeme! Vaše zpráva byla odeslána.";
    } else {
        echo "Oops! Něco se nepovedlo a vaši zprávu se nepodařilo odeslat.";
    }
} else {
    echo "Oops! Něco se pokazilo.";
}
?>

 

Bezpečnostní opatření

Bezpečnost by měla být vždy na prvním místě, když se jedná o zpracování uživatelských dat. Používání funkcí strip_tags() a filter_var() je dobrý způsob, jak omezit riziko XSS (Cross-site scripting) a injektáže škodlivého kódu. Dále je důležité zajistit, že e-mailová adresa je validní pomocí FILTER_VALIDATE_EMAIL.

 

Vytvoření kontaktního formuláře s PHP skriptem pro odesílání zpráv je základní, ale velmi důležitou dovedností pro webové vývojáře. Důraz na bezpečnost a ověření vstupů zajistí, že bude tento proces nejen funkční, ale také bezpečný pro vás i vaše uživatele.