Seite 1 von 1

Mailformular

Verfasst: 02.11.2007 16:19
von TomW
Hallo,

Ich habe hier dieses Mailformular, wenn ich damit eine Mail abschicke, erscheint der Text immer mit einer zusätzlichen Leerzeile.

Beispiel:

eingegebener Text:
Hier nun mein Text,
da war schon der erste Absatz.
Und gleich noch einen
hinterher.
Die E-Mail sieht dann aber so aus
Hier nun mein Text,

da war schon der erste Absatz.

Und gleich noch einen

hinterher.
Bei einem anderen Provider ist das Problem nicht, mein Provider meinte dass es an Einstellungen wie magic_quotes liegt, habe es daraufhin mit folgendem Code versucht, hat aber auch nicht geklappt.

Code: Alles auswählen

  foreach($_POST as $parameter => $wert)
	{
	$_POST[$parameter] = stripslashes($wert);
	}
Woran liegt das und wie kann ich das verhindern?


TomW

Verfasst: 02.11.2007 17:16
von Stefane
hallo,

am ehesten liegt es daran, dass durch dieses Script die neue Zeile als \r\n interpretiert wird.

wenn du das \r entfernst, dann könnte der Fehler schon behoben sein.

Eine Möglichkeit wäre:

str_replace ("\r", "", $deintext);

Wo das genau hin muss, hängt von deinem Script ab. Aber wie es scheint, kennst du dich ein wenig mit php aus, also solltest du auch die Stelle finden. :wink:

Lg

Stefane

Verfasst: 03.11.2007 18:55
von TomW
Stefane hat geschrieben: Eine Möglichkeit wäre:

str_replace ("\r", "", $deintext);
Habe beide Möglichkeiten versucht, also \r und \n aber hat nichts geholfen. Kann ich mir die \n und \r des Textes irgendwie anzeigen lassen?

TomW

Verfasst: 03.11.2007 23:31
von killerbees19

Code: Alles auswählen

$message = str_replace("\r", "[R]", $message);
$message = str_replace("\n", "[N]", $message);
Damit werden alle Zeilenumbrüche sichtbar ;-)


MfG Christian

Verfasst: 04.11.2007 17:27
von TomW
Stefane hat geschrieben: str_replace ("\r", "", $deintext);
Es klappt doch, hatte das so geschrieben wie oben, muss ja aber so lauten.
$deintext = str_replace ("\r", "", $deintext);
Danke

TomW