Einfaches Kontaktformular mit PHP Zurück zur Übersicht
Über den Autor
Inhalt
1. Die Ausgangsdatei
2. Das Formular
3. Der PHP-Code
4. Der komplette Code
Hier möchte ich euch demonstrieren, wie mit Hilfe von PHP ein einfaches Kontaktformular erstellt werden kann. Das Formular soll die Nachricht vom Besucher an eine vordefinierte Emailadresse versenden.
1. Die Ausgangsdatei
Als erstes erstellt ihr eine Datei namens "kontakt.php". Diese Datei öffnet ihr dann mit einem beliebigen Texteditor (z.B. Notepad).
Nun erstellt ein HTML-Grundgerüst:
<?php # Hier kommt der PHP-Code hin ?> Kontakt <!-- Hier kommt das Formular hin -->
Auf Einzelheiten zu HTML und PHP möchte ich hier nicht eingehen, dazu gibt es andere Tutorials.
2. Das Formular
Dann müsst ihr ein Formular erstellen, in das der Besucher seinen Namen, seine Email-Adresse und eine Nachricht eingeben kann. Optional soll er auch noch die Telefonnummer angeben können.
Hier können Sie uns eine Nachricht senden: <form action="<?php echo $_SERVER['PHP_SELF']; ?>?senden" method="post"> Vorname: *<input name="vorname" size="25" type="text" /> Nachname: *<input name="nachname" size="25" type="text" /> Email: *<input name="email" size="25" type="text" /> Tel.: <input name="tel" size="25" type="text" /> Nachricht: *<textarea cols="50" rows="3" name="nachricht"></textarea> <input type="submit" value="Senden" /> </form> * Diese Felder müssen ausgefüllt werden.
Bemerkung:
Der Tag "method='POST'" ist wichtig, da die Daten des Formulars sonst von Browser in der Adressleiste übergeben werden (GET-Methode). In diesem Fall müssten wir sie im PHP-Script anders auslesen.
"action=..." gibt an, an welchem PHP-Script die Daten gesendet werden sollen. In diesem Fall ist alles in einer Datei. Der Zusatz "?senden" dient dazu, dass das Script "weiß", dass auf den "Senden"-Button geklickt wurde.
3. Der PHP-Code
Jetzt ist der PHP-Code an der Reihe:
<?php # Zuerst die Abfrage, ob an der URL "?senden" hängt # Dann werden die Daten auf Vollständigkeit geprüft: if (($_POST['vorname'] != '') && ($_POST['nachname'] != '') && ($_POST['email'] != '') && ($_POST['nachricht'] != '')){ # Wenn alle erforderlichen Daten eingegeben wurden, werden die Benutzerangaben (falls vorhanden) in Variablen geschrieben $vorname = $_POST['vorname']; $nachname = $_POST['nachname']; $email = $_POST['email']; $nachricht = $_POST['nachricht']; if (empty($_POST['telefon'])){$telefon = "- Nicht angegeben -";} else {$telefon = $_POST['telefon'];} # Dann werden Die Daten für die mail() Funktion in Variablen geschrieben $an = "mail@mydomain.com"; $von = "Kontaktformular <$an>"; $betreff = "Nachricht von der Homepage"; $header = "From: $von\r\n"; $header .= "Subject: $betreff\r\n"; $header .= "Content-Type: text/html\r\n"; $header .= "MIME-Version: 1.0\r\n"; $msg = "Jemand hat dir eine Nachricht von der Homepage geschickt: Name: $vorname $nachname Email: $email Telefon: $telefon ---- Nachricht: ---- $nachricht --------------------"; # Falls es beim Senden der Email einen Fehler gibt, wird dies dem Besucher signalisiert $rueckgabe = '<span style="color: #008800;">Vielen Dank, die Nachricht wurde erfolgreich versandt.</span><br />'; }else{ $rueckgabe = '<span style="color: #cc0000;">Beim Senden der Email ist ein Fehler aufgetreten.</span><br />'; } } else { $rueckgabe = '<span style="color: #cc0000;">Bitte alle Felder, die mit * markiert sind, ausfüllen.'; } }else{ $rueckgabe = ''; } echo $rueckgabe; ?>
4. Der komplette Code
Hier noch einmal der komplette Code:
<?php # Zuerst die Abfrage, ob an der URL "?senden" hängt # Dann werden die Daten auf Vollständigkeit geprüft: if (($_POST['vorname'] != '') && ($_POST['nachname'] != '') && ($_POST['email'] != '') && ($_POST['nachricht'] != '')){ # Wenn alle erforderlichen Daten eingegeben wurden, werden die Benutzerangaben (falls vorhanden) in Variablen geschrieben $vorname = $_POST['vorname']; $nachname = $_POST['nachname']; $email = $_POST['email']; $nachricht = $_POST['nachricht']; if (empty($_POST['telefon'])){$telefon = "- Nicht angegeben -";} else {$telefon = $_POST['telefon'];} # Dann werden Die Daten für die mail() Funktion in Variablen geschrieben $an = "mail@mydomain.com"; $von = "Kontaktformular <$an>"; $betreff = "Nachricht von der Homepage"; $header = "From: $von\r\n"; $header .= "Subject: $betreff\r\n"; $header .= "Content-Type: text/html\r\n"; $header .= "MIME-Version: 1.0\r\n"; $msg = "Jemand hat dir eine Nachricht von der Homepage geschickt: Name: $vorname $nachname Email: $email Telefon: $telefon ---- Nachricht: ---- $nachricht --------------------"; # Falls es beim Senden der Email einen Fehler gibt, wird dies dem Besucher signalisiert $rueckgabe = '<span style="color: #008800;">Vielen Dank, die Nachricht wurde erfolgreich versandt.</span><br />'; }else{ $rueckgabe = '<span style="color: #cc0000;">Beim Senden der Email ist ein Fehler aufgetreten.</span><br />'; } } else { $rueckgabe = '<span style="color: #cc0000;">Bitte alle Felder, die mit * markiert sind, ausfüllen.'; } }else{ $rueckgabe = ''; } echo $rueckgabe; ?> Hier können Sie uns eine Nachricht senden:<br /> <form action="<?php echo $_SERVER['PHP_SELF'];?>?senden" method="post"> <table border="0"> <tr> <td>Vorname: *</td> <td><input name="vorname" size="25" type="text" /></td> </tr> <tr> <td>Nachname: *</td> <td><input name="nachname" size="25" type="text" /></td> </tr> <tr> <td>Email: *</td> <td><input name="email" size="25" type="text" /></td> </tr> <tr> <td>Tel.:</td> <td><input name="tel" size="25" type="text" /></td> </tr> <tr> <td>Nachricht: *</td> <td><textarea cols="50" rows="3" name="nachricht"></textarea></td> </tr> <tr> <td colspan="2"><center><input type="submit" value="Senden" /></center></td> </tr> </table> </form> * Diese Felder müssen ausgefüllt werden.
Natürlich müsset ihr bei der Variable $an eure eigene Adresse eingeben.
Ich hoffe, es hilft euch weiter. Bei Verbesserungswünschen und Fehlern bitte ich um eine kurze Nachricht.
Autor Kbit
Überarbeitet von XMMX nach Zerstörung durch die Seitenumstellung