Kommunikation ist das A und O im Web – und weil es für den Besucher ein wenig umständlich ist, wenn auf einer Webseite lediglich eine Emailadresse angegeben ist, haben sich Kontaktformulare längst etabliert. Hier kann der geneigte Besucher direkt drauflostippen, ohne erst in sein Mailprogramm wechseln zu müssen.
Ein weiterer Vorteil des Formmailers ist, dass man als Webmaster bereits einige Felder vorgeben kann, damit man diese Informationen auf jeden Fall erhält. Praktisch ist das zum Beispiel, wenn man ein Feld für die URL angibt oder aber für einen Sicherheitscode, um Spam zu vermeiden.
Es gibt viele Anbieter, bei denen man sich registrieren kann und anschließend den Code für ein Kontaktformular erhält, den man per Copy & Paste in seinen Quelltext einfügen kann, ohne großartiges Wissen. Der Nachteil an diesen Formularen ist jedoch, dass sie erstens Werbung für den jeweiligen Anbieter beinhalten und zweitens nicht an die eigenen Wünsche angepasst werden können, was Funktionen und Aussehen betrifft.
Also ran an den Speck: wie man ein solches Kontaktformular selber erstellen kann, wird in diesem Tutorial erklärt.
Voraussetzungen
Du benötigst auf deinem Webspace PHP.
wie funktioniert’s?
Wir werden zwei Dateien erstellen: formular.htm und mailer.php
Die HTML-Datei enthält das Kontaktformular selber – sprich das, was deine Besucher zu sehen bekommen – während in der mailer.php die Eingaben in das Formular überprüft und dann an deine Emailadresse versandt werden.
formular.htm
Den folgenden Code fügst du in den body-Bereich deines Quelltextes ein und speicherst die Datei anschließend als formular.htm:
<form action="mailer.php" method="post">
<label for="Absender">Name:</label> <input type="text" id="Absender" name="Absender" /><br />
<label for="eMail">eMail:</label> <input type="text" id="eMail" name="eMail" /><br />
<label for="Webseite">Webseite:</label> <input type="text" id="Webseite" name="Webseite" /><br />
<label for="Inhalt">Inhalt:</label> <textarea id="Inhalt" name="Inhalt" rows="3" cols="20">Lieber Webmaster... </textarea><br />
<input type="submit" value="senden" class="button" />
<input type="reset" value="leeren" class="button" />
</form>
Hier haben wir die Grundlage eines jeden Kontaktformulars – der Besucher tippt seinen Namen, seine Emailadresse und seine Webseite ein und darunter folgt ein Textfeld, in dem er dir seine Herzenswünsche zukommen lassen kann. Dann kann er entweder auf “senden” klicken oder lieber doch noch einmal alle Felder leeren und von vorne beginnen.
Wie man sieht, kommt dieses Formular vollkommen ohne sperrige Tabellen aus!
Die Angabe, was in welches Textfeld eingegeben werden soll, sitzt in label-Tags. Diese haben rein optisch erst einmal keine Auswirkungen, sondern dienen dazu, eben diese Angabe inhaltlich mit dem jeweiligen Eingabefeld zu verknüpfen. Dies geschieht dadurch, dass im label-Tag das Attribut for=”blah” steht, wobei “blah” der jeweiligen id des Eingabefeldes entspricht.
die mailer.php
Nun kommen wir zur mailer.php – den folgenden Code kopierst du, passt die erste, dritte und vierte Zeile an und speicherst die Datei anschließend als mailer.php.
Wichtig: falls du diese Datei aus irgendeinem Grund unter einem anderen Namen ablegen möchtest, musst du diesen Namen auch in der ersten Zeile des Kontaktformulars anpassen, dort wo “action=”mailer.php” steht.
Du musst, wie gesagt, deine eigene Emailadresse angeben, an die das Formular verschickt werden soll, desweiteren kannst du den Betreff der Email anpassen, die du dann erhalten wirst.
Die Weiterleitung schließlich ist diejenige Seite, auf die dein Besucher weitergeleitet wird, nachdem er den Senden-Button betätigt hat. Hier bieten sich verschiedene Möglichkeiten an: eine Bestätigungsseite zum Beispiel, auf der steht, dass die Mail erfolgreich versandt wurde, die Startseite deiner Homepage, wieder die Seite mit dem (leeren) Formular, … oder oder oder.
<?php
$strEmpfaenger = 'deineadresse@mail.de'; // deine Emailadresse
$strAbsender = '"Name des Absenders" <absenderadresse@mail.de>'; // Email und Name des Absenders
$strBetreff = 'Kontaktformular von deinewebseite.de'; // Betreffzeile der Mail
$strWeiterleitung = 'http://deineseite.de'; // Weiterleitung nach dem Abschicken
$strDelimiter = ":\t";
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strBetreff, $strMailtext, "From: ".$strAbsender)
or die("Die Mail konnte leider nicht versendet werden.");
header("Location: $strWeiterleitung");
exit;
}
?>
etwas Kosmetik
Damit dein Formular ordentlich aussieht, bekommt es jetzt noch etwas CSS-Kosmetik verpasst. Die folgenden Anweisungen packst du in das Stylesheet deiner Seite:
label, input {
display: block;
float: left;
width: 100px;
}
form br {
clear: left;
}
.button {
float: none;
width: auto;
}
Sie sorgen dafür, dass die Eingabefelder gleichmäßig ausgerichtet sind und die gleiche Breite aufweisen. Selbstverständlich kannst du nun noch einen Schritt weitergehen und Hintergrundfarbe, Randfarbe und -breite, Schriftart und so weiter an deine Layoutwünsche anpassen.

huhu
also ja danke. genial. obwohl ich den php teil nicht so ganz versteh. kenn auch nicht diese funktionen. und letztlich hab ich meine testmail noch nicht bekommen. liegt aber glaub ich an meinem host^^
trotzdem danke.
Bei welchem Hoster bist du denn? Nicht alle unterstützen die mail()-Funktion.
ich bin bei lima-city.de angemeldet. ich hab mal gehört, dass die mail funktion gehen soll, allerdings wären die server zu überlastet. ist halt en relativ kleiner hoster, aber werbefrei.
hat übrigens geklappt mit der wordpress installation. muss “nur” noch versuchen en layout inzubekommen. das wird noch schwer^^
lg
Na, dann drücke ich dir die Daumen, dass es bald wieder läuft.
Zum Thema WordPress-Layouts findest du hier ja auch einige Tutorials. :-)
Danke für dieses Tutorial!
Fabian, für WordPress gibt es doch Plugins für ein Kontaktformular ;)
Gibt es da ne möglichkeit, das mann einen zweiten empfenger rein bekommt?
Binn schon min… seit 8 std, da zugangen ohne das sich was gutes dabei tut.
:-(
Wehr sehr nett wenn einer was posten könnte THX
p.s mit den zweiten empfender meine ich das der jenige der seine email adresse in den formular einträgt, quasi eine kopie davon bekommt.
MFG an allen
zuerst danke für Kontaktformular,
es gibt a klein Problem und zwar wenn man auf senden drückt ohne Daten zu eingeben trotzdem wird versendet,
also man wird mit leeren E-Mail bombardiert
kann man was dagegen tun?
danke im voraus
Hallo neontrauma,
ich könnte heute kaum vorstellen, dass ein Hoster diese Funktion nicht anbietet ;)
Viele Grüße
Hallo neontrauma, hallo liebe Leser dieses Posts.
Auch wenn der Post schon “alt” ist,
es ist gefährlich ein Kontakt-Formular dieser einfachen Ausprägung zu verwenden.
Es fehlt zumindest der Schutz vor Spamversendung über das Formular !
Über dieses Thema gibt es viele Tutorials, hier ein Besipiel:
http://mrfoo.de/archiv/13-Sicheres-Kontaktformular-mit-PHP-Spam-verhindern.html
(Habe keinerlei Bezug zu der verlinkten Seite, wurde willkürlich ausgewählt.)
Ein User mit böser Absicht kann ein Fromular wie hier vorgestellt mißbrauchen um Spam zu versenden. Als Versender bist dann du, der du das Formular auf deiner Seite zur Verfügung stellst, verantwortlich.
Also bitte, schützt eure Formulare vor Mailinjection, denn so nennt man den Missbrauch.
Ausserdem sollte man die möglichen Zeichen in den verschiedenen Feldern begrenzen um zu verhindern, dass unbrauchbare oder verkehrte beispielsweise Absender-E-Mail-Adressen angegeben werden (ob versehentlich oder absichtlich).
Auch sollte man ein solches Formular gegen Spamroboter schützen, welche automatisch Kontaktformulare erkennen und an dich Spam versenden.
Spam ist ein grosses Ärgerniss und sollte soweit als möglich unterbunden werden.
Cheers,
noRiddle