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.php
metodą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.