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

jak napisac formularz kontaktowy html + php do wysylki na maila
jak napisac formularz kontaktowy html + php do wysylki na 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:

  1. 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.
  2. 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.
    • Adres e-mail jest weryfikowany za pomocą funkcji filter_var() i flagi FILTER_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).
  3. 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Ż:

Pozostałe kategorie