• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kleine Anpassung in Code für Kontaktformular

Failix

Neues Mitglied
Hallo zusammen,

ich habe mir mit Hilfe dieser Anleitung ...

https://www.php-einfach.de/experte/php-codebeispiele/kontaktformular/

... ein Kontaktformular erstellt. Das funktioniert wunderbar, alle im Formular verwendeten Inputs werden erkannt und in der versendeten Mail korrekt wiedergegeben.

Nur eine kleine Sache hätte ich gern anders, die ich aber allein nicht lösen kann:

Hat ein Input einen Namen aus zwei Wörtern mit Leerzeichen, also z. B. name="Anzahl Artikel", erscheint dies in der Mail als "Anzahl_Artikel", das Leerzeichen wird also zum Unterstrich. Ich hätte aber auch in der Mail lieber ein Leerzeichen anstelle des Unterstrichs.

Könnte mir eventuell jemand weiterhelfen, bitte?

Danke und Gruß
Felix
 
Ich habe es versucht, aber es bringt ein zweifelhaftes Ergebnis. Also:

Der Name des Inputs ist "Anzahl Hefte".

In der Mail steht "Anzahl_Hefte".

Also habe ich versucht, str_replace so einzubauen: *

foreach($_POST as $name => $value) {
if (in_array($name, $ignore_fields)) {
continue; //Ignore Felder wird nicht in die Mail eingefügt
}
$msg .= "$name:\n\n$value\n\n\n";
$msg = str_replace("_"," ","Anzahl_Hefte");
}

Das funktioniert, allerdings steht nun in der Mail "Anzahl Hefte" und weiter nix. Irgendwie habe ich den gesamten Inhalt gegen zwei Wörter getauscht. ;-)

Für eine weitere Hilfestellung wäre ich dankbar!

* siehe wieder send_email.php ab Zeile 34 in https://www.php-einfach.de/experte/php-codebeispiele/kontaktformular/
 
ich habe mir mit Hilfe dieser Anleitung ... […] ... ein Kontaktformular erstellt.
Das Script taugt nichts. Mit mail() ist es Glückssache ob die Mail ankommt, verwende eine Mailerklasse (z.B. PHPMailer). Zudem darfst du die E-Mailadresse des Besuchers nicht als From-Adresse in der Mail verwenden: da dein Server höchstwahrscheinlich nicht berechtigt ist, Mails mit der Domain des Besuchers als Absender zu verschicken, erhöhst du die Wahrscheinlichkeit dass die Mail nicht, ankommt deutlich.
 
@Sempervivum Vielen herzlichen Dank, jetzt funktioniert es! Und ich denke, ich habe dabei auch etwas gelernt.

Eine Frage, die sich mir noch stellt: Warum wurde der Unterstrich eigentlich anstelle des Leerzeichens übermittelt? Ist das ein Standardverhalten?

@tk1234 Ich werde mich belesen müssen, PHPMailer ist völliges Neuland für mich. Sehr nachvollziehbar ist hingegen die Sache mit der Mailadresse. Das funktioniert zwar, aber so richtig sauber ist es nicht – ein Reply-To wäre besser, um zu verhindern, dass man sich selbst die Antwort auf eine Mail aus dem Formular schickt. Vielleicht gelingt es mir als reine Übungsaufgabe, das Script dahin gehend umzubauen.
 
Zurück
Oben