mail() mit php - Nachricht formatieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
anfrage
bearbeiten
betreff
code
dank
email
folgenden daten
formular
frage
funktion
http
kurs
mitteilung
nachricht
page
stand
umlaut
url
zeichen
-
Hallo,
und zwar mache ich einen Kurs im Internet, um mir php beizubringen.
Da sind folgende Fragen gestellt worden, die ich ums verrecken nicht kapiere, um sie richtig auszuführen:
3.5.1 Gib die übersandten Werte Name, E-mail, Betreff und Nachricht auf der Antwortseite noch einmal aus, damit dein Besucher seine Angaben noch einmal sehen kann.
3.5.2 Du möchtest gerne wissen, von wo die E-mail abgeschickt wurde und schreibst dir selbst die Gedankenstütze, z. B. 'E-mail von meiner PHP Page', an den Anfang deiner E-mail. Wie sieht die neue Formatierung aus?
3.5.3 Wie müsste die mail() Funktion aussehen, wenn du einen vordefinierten Betreff, z.B Kontaktformular, angibst?
Dazu habe ich dann folgende Codes mit einer Vorlage aus dem Kurs zusammengebastelt:
formular.php
<?php echo"<html> <form action='index.php?Seite=email_senden.php' method='POST'>"; // HTML Code für das Formular echo" <b>Betreff:</b> <input type='text' name='Betreff' size='50'><br> <b>Spielername:</b> <input type='text' name='Spielername' size='44'><br> <b>E-Mail:</b> <input type='text' name='Spielername' size='50'><br> <textarea name='Nachricht' cols='45' rows='15'></textarea><br><br> <input type='submit' name='Abschicken' value='Abschicken'>"; echo"</form> </html>"; ?>
und email_senden.php
<?php $Mitteilung="Absender: " .$_POST['Spielername']."\n". "E-Mail: " .$_POST['E-Mail']."\n". "Nachricht: " .$_POST['Nachricht']; mail ("meine@mail.com", $_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']." <".$_POST['E-Mail'].">"); echo"<html> <body>"; echo" <p align='center'>E-Mail wurde erfolgreich gesendet mit den folgenden Daten:<br><br> $Mitteilung<br><br> Wir bemühen uns so schnell wie möglich deine Anfrage zu bearbeiten.</p>"; echo"</html>"; ?>
Doch ich bekomm nach dem Absenden des Formulars nur einen leeren 'Hintergrund', statt ich dann die Nachricht 'E-Mail wurde erfolgreich gesendet..' angezeigt bekomme.
Und als ich das mal geschafft hatte, stand nur 'Absender: blubb@mail.de E-Mail: Nachricht: blubb' dran.
Wo bleibt da der Spielername? Die empfangene Mail kam dann auch so an:
> blubb@mail.de über lima-mail.de
an mich
Absender:blubb@mail.de
E-Mail:
Nachricht:blubb
Ich hatte immer alles ausgefüllt gehabt in dem Formular..
Ich verzweifle regelrecht an diesem dummen Skript ;___;
Ich hoffe, mir kann geholfen werden. Danke schonmal im Voraus. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Musst wohl noch mal das Thema Variablen behandeln?
email_senden.php
<?php $Mitteilung="Absender: " .$_POST['Spielername']."\n". "E-Mail: " .$_POST['E-Mail']."\n". "Nachricht: " .$_POST['Nachricht']; mail ("meine@mail.com", "'E-mail von meiner PHP Page".$_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']." <".$_POST['E-Mail'].">"); echo"<html> <body>\n"; echo" <p align='center'>Hallo ".$_POST['Spielername']."<br><br> Deine E-Mail wurde erfolgreich gesendet mit den folgenden Daten:<br><br> ".$_POST['Nachricht']."<br><br> und der Email Adresse ".$_POST['E-Mail']." Wir bemühen uns so schnell wie möglich deine Anfrage zu bearbeiten.</p>\n"; echo "</body>\n"; echo"</html>"; ?>
-
email_senden.php
<?php $Mitteilung="Absender: " .$_POST['Spielername']."\n". "E-Mail: " .$_POST['E-Mail']."\n". "Nachricht: " .$_POST['Nachricht']; mail ("meine@mail.com", "'E-mail von meiner PHP Page".$_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']." <".$_POST['E-Mail'].">"); echo"<html> <body>\n"; echo" <p align='center'>Hallo ".$_POST['Spielername']."<br><br> Deine E-Mail wurde erfolgreich gesendet mit den folgenden Daten:<br><br> ".$_POST['Nachricht']."<br><br> und der Email Adresse ".$_POST['E-Mail']." Wir bemühen uns so schnell wie möglich deine Anfrage zu bearbeiten.</p>\n"; echo "</body>\n"; echo"</html>"; ?>
Diesen Code habe ich angewendet, aber da kam trotzdem kein Spielername in der Bestätigung, bzw als Spielername stand die e-mail dran und bei email stand nix dran..
Beitrag zuletzt geändert: 25.2.2014 15:57:45 von uniquemagica-rpg -
Du solltest die POST Variablen mal mit deinem Kontaktformular abgleichen.
Bei Betreff hast du etwas anderes im Name Attribut stehen und bei E-Mail steht auch etwas anderes im name Attribut.
Ich bin zumindest davon ausgegangen, daß du zumindest schon soviel HTML-Kenntnisse besitzt und auch die POST Daten in PHP abfangen kannst. -
Ich hab das Grundlegendste von HTML einigermaßen drauf, aber ich bin eben noch sehr frisch drin.
Nicht umsonst frage ich 'so dumm'.. Ich check diesen E-Mail-Versand einfach nicht..... -.-
Ich habs nochmal bearbeitet, aber der leere Hintergrund bleibt gleich... Es will einfach nicht gehen -.-
formular.php
<?php echo"<html> <form action='index.php?Seite=email_senden.php' method='POST'>"; // HTML Code für das Formular echo" <b>Betreff:</b> <input type='text' name='Betreff' size='50'><br> <b>Spielername:</b> <input type='text' name='Spielername' size='44'><br> <b>E-Mail:</b> <input type='text' name='E-Mail' size='50'><br> <textarea name='Nachricht' cols='45' rows='15'></textarea><br><br> <input type='submit' name='Abschicken' value='Abschicken'>"; echo"</form> </html>"; ?>
email_senden.php
<?php $Mitteilung="Absender: " .$_POST['Spielername']."\n". "E-Mail: " .$_POST['E-Mail']."\n". "Nachricht: " .$_POST['Nachricht']; mail ("meine@mail.com", "php-seite-mail", .$_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']. "<'.$_POST['E-Mail']'>"); echo"<html> <body>\n"; echo" <p align='center'>Hallo ".$_POST['Spielername']."<br><br> Deine E-Mail wurde erfolgreich gesendet mit den folgenden Daten:<br><br> ".$_POST['Betreff']."<br> ".$_POST['E-Mail']."<br> ".$_POST['Nachricht']."<br><br> Wir bemühen uns so schnell wie möglich deine Anfrage zu bearbeiten.</p>\n"; echo "</body>\n"; echo"</html>"; ?>
-
Hier war nur ein Komma zuviel:
mail ("meine@mail.com", "php-seite-mail" .$_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']. "<'.$_POST['E-Mail']'>");
-
Auch ohne Komma ändert sich nix.. Die Bestätigung bleibt aus, nur leerer Hintergrund..
-
Versuch mal:
mail ("meine@mail.com", "php-seite-mail" .$_POST['Betreff'], $Mitteilung, "From:".$_POST['Spielername']. "<".$_POST['E-Mail'].">");
Es waren da noch zwei Fehler drin. -
Dieser letzte Code hat prima funktioniert.
Und die zwei Fehler habe ich nun auch entdeckt. Das war ja ne Geburt xD
Vielen vielen Dank :)
EDIT:
Jedoch bleibt noch die folgende Frage offen:
3.5.3 Wie müsste die mail() Funktion aussehen, wenn du einen vordefinierten Betreff, z.B Kontaktformular, angibst?
Beitrag zuletzt geändert: 25.2.2014 19:13:14 von uniquemagica-rpg -
Nur das
.$_POST['Betreff']
weglassen. Dann kommt bei dir nur noch php-seite-mail als Betreff an. -
Achsoo :D Gleich mal getestet und es hat geklappt. Vielen Dank nochmal :D
Dann wäre das alles ja geklärt. Nun kann ich endlich fortfahren in meinem Kurs. -
ich danke auch, hatte ein ähnliches probelm und die hilfe hier hat mir auch gehelft ^^
Aber mal eine andere Frage: Wenn ich bestimmte Buchstaben (ü) im Formular hab und dann per mail() verschick kommt
(ü) an ... gibt's da eine Möglichkeit das korrekt darzustellen?
Beitrag zuletzt geändert: 14.4.2014 0:34:48 von danielmi -
danielmi schrieb:
ich danke auch, hatte ein ähnliches probelm und die hilfe hier hat mir auch gehelft ^^
Aber mal eine andere Frage: Wenn ich bestimmte Buchstaben (ü) im Formular hab und dann per mail() verschick kommt
(ü) an ... gibt's da eine Möglichkeit das korrekt darzustellen?
Versuch mal das:
Zeichen - - Ersetzung
ä= ä
Ä= Ä
ö= ö
Ö= Ö
ü= ü
Ü= Ü
ß= ß
Das linke ist das zu ersetzende Zeichen. Alles ab diesen Zeichen & musst du beginnen bis zu ; Das = ignorieren.
Beitrag zuletzt geändert: 14.4.2014 11:51:18 von werbeparadise -
danielmi schrieb:
ich danke auch, hatte ein ähnliches probelm und die hilfe hier hat mir auch gehelft ^^
Aber mal eine andere Frage: Wenn ich bestimmte Buchstaben (ü) im Formular hab und dann per mail() verschick kommt
(ü) an ... gibt's da eine Möglichkeit das korrekt darzustellen?
Du solltest Sonderzeichen und Umlaute nie direkt mitsenden sonst bekommst Du Schwierigkeiten bei der Zeichendarstellung aufgrund unterschiedlicher Codetables
Also vorher bitte wandeln!
Siehe auch: http://www.designerzone.de/webdesign-tipps-html-sonderzeichen-liste.php -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage