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.