Tworzenie prostego formularza kontaktowego w PHP obejmuje zarówno frontend (HTML) jak i backend (PHP). Formularz zbiera dane od użytkownika (np. imię, adres e-mail, wiadomość), a następnie za pomocą PHP przetwarza te dane i wysyła je na określony adres e-mail.
Kroki:
- Stwórz formularz w HTML.
- Przygotuj skrypt PHP do obsługi formularza.
- Wyślij dane z formularza za pomocą funkcji
mail().
Przykład formularza kontaktowego:
1. Formularz HTML (frontend):
Zacznij od stworzenia pliku HTML, który będzie zawierał formularz. Formularz wysyła dane metodą POST do skryptu PHP.
<!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>
<h2>Skontaktuj się z nami</h2>
<form action="kontakt.php" method="POST">
<label for="name">Imię:</label><br>
<input type="text" id="name" name="name" required><br><br>
<label for="email">E-mail:</label><br>
<input type="email" id="email" name="email" required><br><br>
<label for="message">Wiadomość:</label><br>
<textarea id="message" name="message" rows="5" required></textarea><br><br>
<input type="submit" value="Wyślij">
</form>
</body>
</html>
2. Skrypt PHP (backend):
Ten skrypt odbierze dane z formularza i wyśle je na podany adres e-mail.
Plik kontakt.php:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Pobieranie danych z formularza
$name = htmlspecialchars(trim($_POST['name']));
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$message = htmlspecialchars(trim($_POST['message']));
// Walidacja danych
if (!empty($name) && filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($message)) {
// Dane do wysłania
$to = "twojadres@example.com"; // Podaj tutaj adres e-mail, na który mają być wysyłane wiadomości
$subject = "Nowa wiadomość od: $name";
$body = "Imię: $name\n";
$body .= "E-mail: $email\n\n";
$body .= "Wiadomość:\n$message";
$headers = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
// Wysyłanie e-maila
if (mail($to, $subject, $body, $headers)) {
echo "Wiadomość została wysłana pomyślnie!";
} else {
echo "Wystąpił problem podczas wysyłania wiadomości.";
}
} else {
echo "Proszę poprawnie wypełnić wszystkie pola.";
}
} else {
echo "Formularz nie został poprawnie przesłany.";
}
?>
Jak to działa:
- Formularz HTML wysyła dane do pliku
kontakt.phpmetodąPOST. - Skrypt PHP odbiera dane, waliduje je (czy imię nie jest puste, e-mail jest poprawny, a wiadomość nie jest pusta).
- Jeśli wszystko jest poprawne, skrypt używa funkcji
mail(), aby wysłać wiadomość e-mail na podany adres. - Funkcja
mail()w PHP wysyła e-mail za pomocą serwera SMTP skonfigurowanego na serwerze, na którym jest hostowana strona.
Ważne uwagi:
- Walidacja danych: Skrypt weryfikuje dane, aby zapobiec wysyłaniu pustych lub niepoprawnych formularzy. Funkcja
filter_var()waliduje adres e-mail, ahtmlspecialchars()zapobiega atakom XSS. - Konfiguracja serwera: Aby funkcja
mail()działała poprawnie, serwer musi być skonfigurowany do wysyłania wiadomości e-mail (np. poprzez Sendmail lub inne narzędzie SMTP). W środowiskach lokalnych (np. XAMPP) możesz potrzebować dodatkowej konfiguracji, aby funkcjamail()działała poprawnie.
Jak zaimplementować formularz na stronie?
- Utwórz plik HTML z formularzem (np.
index.html). - Utwórz plik PHP obsługujący formularz (np.
kontakt.php). - Wgraj oba pliki na swój serwer (np. za pomocą FTP lub poprzez panel hostingowy).
- Upewnij się, że serwer jest skonfigurowany do obsługi PHP i wysyłania e-maili.
To bardzo prosty formularz kontaktowy. W prawdziwych projektach warto dodać dodatkowe zabezpieczenia, takie jak CAPTCHA, aby chronić formularz przed spamem, oraz lepszą walidację danych po stronie serwera.