Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Formulardaten per Mail senden

anyone / 8 Antworten / Baumansicht Nickles

Hallo!


Ich mache gerade einen PHP-Einsteigerkurs mit einem OpenEbook. Da wird auch alles super erklärt. Jedoch finde ich nichts darüber wie ich Inhalte von Formularen per Mail weiterschicke. Ich kann nur die Daten ausgeben, aber ich möchte sie gerne per Mail an eine Adresse, die ich vorher definieren möchte, schicken.


Kann mir da jemand sagen mit welchem Befehl ich die senden kann?

bei Antwort benachrichtigen
philipps anyone „Formulardaten per Mail senden“
Optionen

Hallo Anyone!

Das geht ganz einfach mit der Mail-Funktion von PHP. Doku dazu findest Du unter:

http://www.php.net/manual/de/function.mail.php

Voraussetzung ist, das auf dem Webserver, auf dem PHP läuft, das Sendmail konfiguriert ist, damit es auch funktioniert. Du musst auch einen HeaderString definieren. Näheres in der Doku.

Bei weiteren Fragen, posten.....

bei Antwort benachrichtigen
anyone philipps „Hallo Anyone! Das geht ganz einfach mit der Mail-Funktion von PHP. Doku dazu...“
Optionen

Danke .. das hat mir erstmal sehr geholfen.

Ich hab jetzt aber mal noch ne Frage: Ich kann jetzt nur Inhalte von Feldern per Mail schicken, die Text beinhalten. Ich hab ein Feld für Name, Mail und Text ... das funktioniert auch tadellos, aber als ich eine Checkbox eigefügt hab, ging nichts mehr ... in der mailsend.php hab ich folgende Zeile die mir die Daten übermittelt:

mail($mail,$betreff,$text,$check,"From: ".$email);

wenn ich das ,$check rauslasse funktioniert alles so wie es sein sollte, aber wenn es so dasteht, wird der Absender nicht mehr angezeigt. Den brauch ich ja aber.
Allerdings weiß ich nicht wie ich jetzt den Inhalt der Checkbox übermitteln soll. Am liebsten wäre mir, wenn in der Mail stehen würde "Newsletter: ja" wenn die checkbox angeklickt ist und "Newsletter: nein" wenn die nicht angeklickt ist.

Aber irgendwie bekomm ich das nicht geregelt. Wie gesagt .. bin da ein verdammt blutiger Anfänger :(

bei Antwort benachrichtigen
philipps anyone „Formulardaten per Mail senden“
Optionen

Hi Anyone!

Du versuchst anscheinend bei Deiner Mail-Funktion den Wert der Checkbox als Email-Header abzusenden (falls $check der Wert der Checkbox ist). Das gibt natürlich überhaupt keinen Sinn :-)

Wenn bei HTML Forms eine Checkbox nicht aktiviert ist, also unchecked, dann wird sie erst gar nicht an das Skript übermittelt. Das bedeutet, wenn Du eine Checkbox nicht antickst und in PHP trotzdem versuchst sie aus dem $_GET oder aus dem $_POST array auszulesen, wirst Du einen PHP UndefinedIndexError bekommen. Im Fall Deines Newsletters musst Du also vorher testen ob der array key (also der Name Deiner Checkbox) auch wirklich in $_GET oder $_POST existiert!
Des Weiteren musst Du dann den Wert der Checkbox irgendwie in den Nachrichtenteil der Mail einbauen - nicht als Header!!!!

Versuch also mal folgendes in Dein "mailsend.php" einzubauen:

===================================================

if (array_key_exists("formCheckbox", $_GET)) { //oder $_POST
$check = "Newsletter:ja";
}
else {
$check = "Newsletter:Nein";
}
$text = $check.$text //oder irgendwas ähnliches
mail($mail,$betreff,$text,"From: ".$email);

===================================================

Das sollte besser klappen :-)

bei Antwort benachrichtigen
anyone Nachtrag zu: „Formulardaten per Mail senden“
Optionen

Danke!

Also ich hab das jetzt so übernommen, aber er bringt bei jeder Mail, egal was angeklickt ist : Newsletter nein!




$mail="name@domain.de";
$vtext="Deine Mail ist sicher bei $mail angekommen.\nzeile2\n\nMit freundlichen Grüßen \nich\nhttp://www.Nickles.de";
$bestaetigung="Bestätigung";

$text=str_replace("\\\"","\"",$text);
$text=str_replace("\'","'",$text);

if (array_key_exists("formcheck", $_GET)) { //oder $_POST
$check = "Newsletter:ja";
}
else {
$check = "Newsletter:Nein";
}
$text = $check.$text;

mail($mail,$betreff,$text,"From: ".$email);
mail($email,$bestaetigung,$vtext,"From: ".$mail);
?>

Irgendwie stell ich mich da zu blöd an! Ich hab auch schon mitm Kopf gegen die Wand gehaun, aber das hat auch nix genützt :(

any

bei Antwort benachrichtigen
philipps anyone „Danke! Also ich hab das jetzt so übernommen, aber er bringt bei jeder Mail,...“
Optionen

Ja, Du musst natürlich "formCheck" (welches ein Vorschlag meinerseits für den Namen der HTML Checkbox war) in den Namen Deiner Checkbox im Formular ändern, dann wird es funktionieren.

Wieso hast Du zwei mail aufrufe???

bei Antwort benachrichtigen
anyone philipps „Ja, Du musst natürlich formCheck welches ein Vorschlag meinerseits für den...“
Optionen

na das eine ist die Mail die an mich geht und das zweite ist eine Mail die an denjenigen geht der die Anfrage gestellt hat, quasi ne Bestätigungsmail :)

So, jetzt funktioniert das auch ...

Nur eins noch ... wenn die Mail geschickt wird, wie kann ich dann zwischen dem Text und der Checkbox eine Leerzeile einfügen? Ich mein ... im Moment sieht das so aus: Newsletter:jaHier steht der Text.

Da muss aber irgengwie noch ne Leerzeile rein .... mit \n\ funktioniert das hier nicht. *dummguck*

Aber auf jeden Fall lad ich Dich zu nem Kasten Bier ein wennde mal herkommen willst ins schöne Sachsen :) Als Dank quasi

Bier Brothers - Du trinkst nicht allein!
In diesem Sinne

any

bei Antwort benachrichtigen
philipps anyone „na das eine ist die Mail die an mich geht und das zweite ist eine Mail die an...“
Optionen

Hallo Anyone!

Ein Kistchen Bier wäre nicht schlecht - und von mir aus Ostbayern wäre es auch nicht so weit :-)

Im PHP Code, wo ich geschrieben habe:

$text = $check.$text;

versuch mal folgendes:

$text = $check."\\n".$text;

oder $text = $text."\\n".$check;

Wie Du halt lustig bist.

Viele Grüsse nach Sachsen

bei Antwort benachrichtigen
anyone philipps „Hallo Anyone! Ein Kistchen Bier wäre nicht schlecht - und von mir aus Ostbayern...“
Optionen

Juppi *rumhüpf*

Es funzt! DANKÄÄÄÄ

any

bei Antwort benachrichtigen