Ich sehe ungefähr 3 Mal pro Tag die Frage nach einem PHP-Formmailer. Deswegen hier die Info wie es geht.
Was ist wichtig für HTML?:
Du fängst ja immer an mit einem Tag an, gefolgt von einem Tag.
Nun der erste wichtig Teil:
Der input MUSS einen name=„“ und eine id=„“ haben.
Beispiel:
[HTML][/HTML]
required fügst du ein, wenn man das Feld ausfüllen MUSS (spart dir java-script).
Beispiel:
[HTML]
[PHP]<?php
{
$name = $_POST[‚name‘];
$email = $_POST[‚email‘];
$to = ‚deine@e-mail.de‘;
$subject = „Support-Anfrage“;
$message = $_POST[‚message‘];
$betreff = $_POST[‚betreff‘];
$urlDankeSeite = ‚HIER KOMMT DEIN CODE IN HTML REIN, auf welche der Nutzer nach dem klicken geleitet wird‘;
$body = ’
Name: ‚.$name.‘
E-Mail: ‚.$email.‘
Nachricht: ‚.$message.‘
';
$headers = „From: „.$name.“ <“.$email.„>\r\n“;
$headers .= „Reply-To: „.$email.“\r\n“;
$headers .= „Content-type: text/html; charset=utf-8“;
$send = mail($to, $subject, $body, $headers);
if ($send) {
die($urlDankeSeite);
}
else {
echo ‚Ein Fehler ist aufgetreten!‘;
}
exit;
}
?>[/PHP]
So wir fangen oben an.
[PHP]$name = $_POST[‚name‘];
$email = $_POST[‚email‘];
$to = ‚deine@e-mail.de‘;
$subject = „Support-Anfrage“;
$message = $_POST[‚message‘];
$betreff = $_POST[‚betreff‘];
$unternehmen = $_POST[‚unternehmen‘];[/PHP]
Du siehst schon, warum wir die IDs aus dem html code brauchen.
Denn wir legen ja einen Wert für $irgendwas fest (das irgendwas muss nicht die ID aus dem html sein)
[PHP]$irgendwas = …[/PHP]
nun ziehen wir uns die ID aus dem html-code, indem wir Array $POST[‚HTML-ID‘] anwenden:
[PHP]$irgendwas = $POST[‚name‘][/PHP]
das machen wir nun für jede ID in unserem Form.
[PHP]$name = $_POST[‚name‘];
$email = $_POST[‚email‘];
$to = ‚deine@e-mail.de‘;
$subject = „Support-Anfrage“;
$message = $_POST[‚message‘];
$betreff = $_POST[‚betreff‘];[/PHP]
Dir müsste aufgefallen sein, dass wir nicht nur dir IDs aus dem HTML als $… stehen haben.
Wir haben nun noch 2 weitere $… stehen.
[PHP]$to = ‚deine@e-mail.de‘;
$subject = „Support-Anfrage“;[/PHP]
das $to habe ich als beispiel für den Empfänger des Forms genommen. Du kannst es aber beliebig nennen.
Also geben wir $to direkt einen festen Wert. Nämlich deine E-Mail.
$Subject habe ich als Betreff genommen. Diesen Wert kannst du auch umbenennen.
WICHTIG:
$Subject hat in diesem Beispiel einen festen Wert. Du kannst ihn allerdings auch nicht fest machen, sondern das $Subject wieder durch eine ID im html Code eingeben lassen:
[HTML] [/HTML]
[PHP]$subject = $_POST[‚subject‘];[/PHP]
Nächster Teil:
[PHP]$urlDankeSeite = ‚HIER KOMMT DEIN CODE IN HTML REIN, auf welche der Nutzer nach dem klicken geleitet wird‘;
$body = ’
Name: ‚.$name.‘
E-Mail: ‚.$email.‘
Nachricht: ‚.$message.‘
';[/PHP]
Als erstes gucken wir uns die $urlDankeSeite an:
Es ist ein fest angelegter Wert, auf den der Nutzer nach dem klicken des Submit-buttons weitergeleitet wird.
WICHTIG:
Das kann auch in html geschrieben werden. Also zum Beispiel:
[PHP]$urlDankeSeite = ’
Der $body =‚‘ ist, was in deiner E-Mail die DU bekommst drin steht.
[PHP]$body = ’
Name: ‚.$name.‘
E-Mail: ‚.$email.‘
Nachricht: ‚.$message.‘
';[/PHP]
Also in deiner E-Mail die du bekommst, steht dann die Eingabe des input-felds mit der ID:
name, email, message (im HTML Code).
Wenn du das $Subject auch haben willst, einfach den Code ergänzen:
[PHP]$body = ’
Name: ‚.$name.‘
E-Mail: ‚.$email.‘
Nachricht: ‚.$message.‘
Betreff: ‚.$Subject.‘
‚;[/PHP]
Man fügt eine Variable in einer Variable folgendermaßen hinzu:
[PHP]
$irgendwas =‘
‚.$blabla.‘
‚;
[/PHP]
Also ganz normal $irgendwas=‘';
Dann fügt man in die Klammern
‚.$blabla.‘ ein un fertig.
Nächster Teil:
[PHP]$headers = „From: „.$name.“ <“.$email.„>\r\n“;
$headers .= „Reply-To: „.$email.“\r\n“;
$headers .= „Content-type: text/html; charset=utf-8“;[/PHP]
Hier werden einfache Header gesetzt, um dem MUA (mail user agent, z.B. ein E-Mail-Programm) die From- und die Reply-To-Adressen mitzuteilen. (+die utf=8 encodierung) Der Teil ist wichtig! Ansonsten funktioniert es nicht.
Nächster und letzter Teil:
[PHP]$send = mail($to, $subject, $body, $headers);
if ($send) {
die($urlDankeSeite);
}
else {
echo ‚Ein Fehler ist aufgetreten!‘;
}
exit;
}[/PHP]
So nun die nächste Variable. $send kann auch umbenannt werden.
Aber der wichtige Teil ist mail();
mail steht im PHP für das senden einer e-mail.
Kann also auch nicht anders heißen.
In die Klammer von mail schreibst du nun rein, welche Variablen geschickt werden sollen.
Wir wollen den Empfänger ($to), den Betreff ($subject), den Körper der E-Mail ($body) und die $headers.
[PHP]if ($send) {
die($urlDankeSeite);
}
else {
echo ‚Ein Fehler ist aufgetreten!‘;
}
exit;[/PHP]
also die if und else Befehle sagen nur, dass wenn $send ausgeführt wurde, soll er auf die $urlDankeSeite weitergeleitet werden.
WICHTIG: die (); kann nicht geändert werden, da ‚die‘ ein fester Befehl steht für:
Druckt eine Nachricht und verlässt das aktuelle Skript.
Also if ($send) ist ausgeführt, dann {die($urlDankeSeite};
Wenn nicht (else), dann {echo’Ein Fehler ist aufgetreten!';}
am ende das exit; nicht vergessen.