Hi!
würde mich nun gerne mit dem wordwrap befassen:
Ist das so richtig?
Kennst du das PHP-Handbuch nicht?
Da man dir schon oft genug Links darauf gepostet hat, sollte es dir eigentlich bekannt sein.
Natürlich ist dort auch die Funktion wordwrap() beschrieben.
urlencode ($nachricht);
In $nachricht steht doch wohl sicherlich der Text der Email drin, oder?
Und du übergibst deine Werte per POST. (Das war doch das Flashformular, oder?)
Warum kodierst du diese Daten jetzt hier?
Dir ist klar, was die Funktion urlencode() macht?
$nachricht=str_replace("\r","\n",$nachricht);
Und was soll das?
Zu den Zeilenumbrüchen habe ich dir ja auch bereits was geschrieben.
Wenn du die alten Mac-Zeilenumbrüche hast, dann liegt ein \r vor.
Hier würde die Ersetzung einen Sinn ergeben. Ich meine aber, mich erinnern zu können, daß kein Mac-Browser diesen Zeilenumbruch in HTML-Formularen gesendet hat.
Wenn es sich um Windows-Zeilenumbrüche handelt, dann liegt \r\n vor.
In diesem Fall würdest du daraus dann \n\n machen, was doppelte Zeilenumbrüche zur Folge hätte.
$nameeingabe = wordwrap($nameeingabe, 70);
Warum brichst du denn Namen um?
Wie ich weiter unten im Code sehe, baust du den Namen im Betreff der Mail ein. Der Betreff kann bzw. darf gar keine Zeilenumbrüche enthalten.
$email = wordwrap($email, 70);
Und die Emailadresse übergibst du der mail()-Funktion bei als optionalen Parameter für zusätzliche Header.
Email-Headerzeilen werden durch Zeilenumbrüche voneinander abgetrennt.
Hier darf ebenfalls in keinem Fall ein Umbruch erfolgen.
Davon abgesehen würde ich Emailadressen niemals umbrechen.
Jede gute Mailclient macht Emailadressen klickbar. Das funktioniert nicht mehr, wenn ein Umbruch da drin wäre.
$nachricht = wordwrap($nachricht, 70);
Ja, hier ergibt der Einsatz der Funktion einen Sinn.
mail( $empfaenger, $betreff, $nachrichtgesamt, "From: $nameeingabe <$email>" );
Hast du dir mal die Syntax der Funktion mail() angesehen?
Ich habe bereits geschrieben, daß du die zusätzlichen Header nutzen sollst, um z.B. die verwendete Zeichenkodierung anzugeben.
Wenn du möchtest, daß Umlaute und Sonderzeichen später auch korrekt ankommen und nicht nur durch Zufall richtig angezeigt werden, muß man dem Mailclient mitteilen, welche Kodierung verwendet wurde.
$header = "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
Liest du eigentlich, was die Leute dir schreiben?
Schöner Gruß,
rob