PHP Formmailer
Author: Admin (821 Wörter in diesem Text) (19486 mal gelesen)
mit freundlicher Genehmigung von http://web.rauth.biz
Sie möchten sich Daten, beispielsweise aus einem Kontaktformular oder einem Feedbackformular auf Ihrer Webseite übermitteln lassen? Nichts leichter als das.
Sie müssen hierzu lediglich das Formular erstellen, was fehlt aber nun noch? Das Formular bzw. die getätigten Angaben, diese sollen ja übermittelt werden. Mit HTML (HyperText Markup Language) ist eine Übermittlung von Daten nicht möglich und sich die Daten clientseitig per Mail-Client via eMail übermitteln zu lassen, schaut zum einen weder professionell aus, noch garantiert dies eine Übermittlung.
Was denken Sie was passiert, wenn der Interessierte überhaupt keinen Mail-Client installiert hat? Genau, es passiert nichts. Auf privaten Webseiten mag das für den ein oder anderen akzeptabel sein (wenn gleich die nachfolgende Lösung weder schwer noch zeitaufwendig ist), aber für eine professionell erstellte Webseite sollte den Intessierten eine andere, eine bessere Lösung geboten werden.
Es empfiehlt sich hier auf die Programmiersprache PHP (Hypertext Preprocessor) zurückzugreifen, welche übrigens serverseitig ausgeführt wird. Dies bedeutet lediglich, dass es unerheblich ist, ob der Interessierte einen Mail-Client installiert hat oder nicht, denn dieser wird schlichtweg nicht benötigt.
Nachfolgend wird in dem Tutorial erklärt, wie man ein Kontaktformular per HTML (HyperText Markup Language) erstellt und wie die Daten mittels einem PHP (Hypertext Preprocessor) Skript verschickt werden. Selbstverständlich erfolgt nach erfolgreicher Versendung eine entsprechende Bestätigung oder im Falle eines Fehlers eine geeignete Fehlermeldung, damit der Interessierte weiß, ob die Angaben nun angekommen sind oder nicht.
Als erstes wird das Kontaktformular erstellt. Hierbei ist zu beachten, dass die Angaben bezüglich des Namens, der eMail-Adresse sowie der Mitteilung erfolgen müssen, andernfalls ist eine Versendung nicht möglich. Die Datei wird unter kontakt.html gespeichert.
Inhalt der Datei kontakt.html
PHP-CODE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Beispiel</title>
</head>
<body>
<form action="mail.php" method="post">
<table border="0" width="500" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="200">Name <b>*</b></font></td>
<td width="300"><input type="text" name="name"></td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td width="200">Telefon</td>
<td width="300"><input type="text" name="telefon"></td>
</tr>
<tr>
<td height="5" colspan="2"></td>
</tr>
<tr>
<td width="200">Telefax</td>
<td width="300"><input type="text" name="telefax"></td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td width="200">eMail <b>*</b></td>
<td width="300"><input type="text" name="email"></td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td width="200" valign="top">Mitteilung <b>*</b></td>
<td width="300"><textarea cols="30" rows="10" name="text"></textarea></td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td width="200">Formular</td>
<td width="300"><input type="submit" value="Senden"></td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td width="200"></td>
<td width="300"><b>*</b> - notwendige Angaben!</td>
</tr>
</table>
</form>
</body>
</hml>
Um die Daten zu verschicken ist wie bereits am Anfang erwähnt, ein PHP Skript nötig. Sie müssen hier lediglich in den ersten beiden Zeilen, Ihre eMail-Adresse und einen Betreff hinterlegen. Schließlich möchten Sie die Angaben ja per eMail erhalten, der Betreff dient für eine direkte Authentifizierung. Die Datei wird als mail.php gespeichert.
Inhalt der Datei mail.php
PHP-CODE:
<?php
$empfaenger = "ihre-email-adresse";
$betreff = "ihr-betreff";
$mailtext = "Name: $name
Telefon: $telefon
Telefax: $telefax
eMail: $email
Betreff: $auswahl
Mitteilung: $text";
if(empty($name) || empty($email) || empty($text))
{
header("Location: danke_fehler.html");
}
else
{
mail("$empfaenger", "$betreff", "$mailtext", "From: $email");
header("Location: danke.html");
}
?>
Sofern die Versendung erfolgreich erfolgt ist, folgt nun eine Bestätigung in Form einer "Dankesseite". Diese wird gespeichert als danke.html.
Inhalt der Datei danke.html
PHP-CODE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Beispiel</title>
</head>
<body>
<table border="0" width="500" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="500">
Vielen Dank für die Kontaktaufnahme. Die Angaben
wurden soeben erfolgreich verschickt.
</td>
</tr>
</table>
</body>
</html>
Ein kleiner Tipp zu der Datei danke.html. Im Head Bereich der HTML Seite führt der Eintrag:
CODE:
- <meta http-equiv="refresh" content="10; URL=http://www.ihre-domain.de">
dazu, dass in 10 Sekunden eine Umleitung auf beispielsweise die Startseite erfolgt. Dies rundet die Angelegenheit ab.
Was aber, wenn der Interessiert seinen Namen, seine eMail oder schlichtweg seine Mitteilung vergisst? Anhand fehlender Angaben wird natürlich ein Feedback schwer erfolgen können, der Versand muss also gestoppt werden. Im vorliegenden Beispiel ist die Angabe des Namens, der eMail-Adresse und der Mitteilung zwingend. Erfolgen diese nicht vollständig, leitet das PHP Skript direkt auf eine Fehlermeldung, diese Datei wird als danke_fehler.html gespeichert.
Inhalt der Datei danke_fehler.html
PHP-CODE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Beispiel</title>
</head>
<body>
<table border="0" width="500" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="500">
Sie haben leider nicht alle notwendigen Angaben getätigt.
Bitte beachten Sie, dass zur Versendung des Formulars,
Ihr Name, Ihre eMail-Adresse sowie Ihre
Mitteilung nötig ist.
<br><br> Nutzen Sie die "Back-Funktion" Ihres Browsers, um das
Formular erneut aufzurufen, oder klicken Sie auf den
folgenden Link: www.ihre-domain.de/kontakt.html. Danke.
</td>
</tr>
</table>
</body>
</html>
Hinweise:
Um das vorgenannte Beispiel durchzuführen, achten Sie bitte darauf, dass sich die einzelnen Dateien im Root Verzeichnis befinden, andernfalls sind die Pfade entsprechend anzupassen.
Bei manchen Webservern werden die HTML Dateien nicht automatisch geparst (verarbeitet).
1. Lösungsvorschlag: Legen Sie sich hierzu einfach eine .htaccess Datei an mit folgendem Inhalt:
AddType application/x-httpd-php .php .php4 .html
Speichern Sie die Datei und hinterlegen Sie diese im Root Verzeichnis Ihres Webservers.
2. Lösungsvorschlag: Sofern Ihnen Ihr Provider die Nutzung eigener .htaccess Dateien nicht einräumt, verwenden Sie anstatt der Dateiendung .html einfach die Dateiendung .php.
Zurück
|