Tom: Problem mit Kontaktformular

Beitrag lesen

Hello,

Wenn im Formular eine Leerzeile durch Enter drücken entsteht, wird jedes mal eine weitere Leerzeile angehängt.

Das mag noch ein Fehler der Funktion mail() sein.
Normalerweise sollen Zeilenschaltungen in Mail-Headern immer durch \r\n durchgeführt werden.
Das sind auch die Zeichen, die aus dem Browser für eine Zeilenschaltung kommen sollten und zwar vollkommen unabhängig davon, ob der auf einem MAC, einer WinDOSe oder einem UNIX-Derivat läuft.
Wenn die Browser das nicht machen, verhalten sie sich falsch.

Die PHP-Entwickler scheinen aber in der Mail-Funktion auch etwas verbogen zu haben.
Sie machen im Body aus jedem \n ein \r\n und aus jedem \r auch.
Ulkigerweise werden die Header richtig behandelt. Aber das liegt wahrscheinslich daran, dass alle Heasder vorher in einer Tabelle (Array) gesammelt werden, und dann erst am Ende zum mailheader verbunden werden.

Wenn Du nun also Texte aus einem intakten Browser erhältst, und diese in einer Mail mittels der PHP Mail()-Funtktion weitersenden willst, dann musst Du einfach die \r\n gegen \n austauschen.

$bodytext = str_replace("\r\n", "\n", $bodytext);

Danach funktioniert es auch mit der PHP mail()-Funktion.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)