Jak napisac formularz kontaktowy w HTML oraz skrypt PHP do obsługi wysyłki maila

Formularz kontaktowy w HTML oraz skrypt PHP do obsługi wysyłki maila
Kod HTML
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formularz Kontaktowy</title>
</head>
<body>
<h1>Formularz Kontaktowy</h1>
<form action="send_email.php" method="POST">
<label for="name">Imię i nazwisko:</label><br>
<input type="text" id="name" name="name" placeholder="Wpisz swoje imię i nazwisko" required><br><br>
<label for="email">Adres e-mail:</label><br>
<input type="email" id="email" name="email" placeholder="Wpisz swój adres e-mail" required><br><br>
<label for="phone">Telefon kontaktowy:</label><br>
<input type="tel" id="phone" name="phone" placeholder="Wpisz swój numer telefonu" required><br><br>
<label for="message">Treść pytania:</label><br>
<textarea id="message" name="message" placeholder="Wpisz treść swojego pytania" rows="5" required></textarea><br><br>
<button type="submit">Wyślij</button>
</form>
</body>
</html>
Skrypt PHP do wysyłki maila (send_email.php
)
<?php
// Konfiguracja
$recipient = "biuro@domenatestowa.pl";
$subject = "Nowa wiadomość z formularza kontaktowego";
// Sprawdzenie czy formularz został przesłany
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Pobranie danych z formularza
$name = htmlspecialchars(trim($_POST["name"]));
$email = htmlspecialchars(trim($_POST["email"]));
$phone = htmlspecialchars(trim($_POST["phone"]));
$message = htmlspecialchars(trim($_POST["message"]));
// Walidacja podstawowa
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("Nieprawidłowy format adresu e-mail.");
}
// Przygotowanie treści wiadomości
$email_content = "Imię i nazwisko: $name
";
$email_content .= "E-mail: $email
";
$email_content .= "Telefon: $phone
";
$email_content .= "Treść pytania:
$message
";
// Przygotowanie nagłówków
$headers = "From: $email
";
$headers .= "Reply-To: $email
";
// Wysłanie wiadomości
if (mail($recipient, $subject, $email_content, $headers)) {
echo "Wiadomość została wysłana pomyślnie.";
} else {
echo "Błąd podczas wysyłania wiadomości. Spróbuj ponownie później.";
}
} else {
echo "Nieprawidłowy dostęp do skryptu.";
}
?>
Zasada działania:
-
Formularz HTML:
- Użytkownik wprowadza dane w polach formularza: imię i nazwisko, adres e-mail, telefon kontaktowy oraz treść pytania.
- Polecenie
placeholder
w polach wejściowych podpowiada użytkownikowi, jakie dane należy wprowadzić. - Formularz przesyła dane metodą POST do skryptu PHP.
-
Skrypt PHP:
- Skrypt sprawdza, czy żądanie zostało przesłane metodą POST.
- Dane wejściowe są pobierane z tablicy
$_POST
i wstępnie przetwarzane:- Funkcja
trim()
usuwa nadmiarowe spacje. - Funkcja
htmlspecialchars()
zapobiega wstrzyknięciom kodu HTML.
- Funkcja
- Adres e-mail jest weryfikowany za pomocą funkcji
filter_var()
i flagiFILTER_VALIDATE_EMAIL
. - Treść wiadomości jest składana w zmiennej
$email_content
. - Funkcja
mail()
wysyła e-mail na podany adres odbiorcy, z ustawionymi nagłówkami (od nadawcy i ewentualną opcją odpowiedzi).
-
Bezpieczeństwo:
- Skrypt zapewnia podstawowe bezpieczeństwo poprzez filtrowanie i walidację danych.
- Można rozbudować skrypt o dodatkowe zabezpieczenia, np. reCAPTCHA, aby zapobiec spamowi.
ZOBACZ RÓWNIEŻ: