Zeilenumbruch mit oder \ n

Hallo,
nach langem suchen und versuchen wende ich mich nun an euch.
Ich möchte eine Formularausgabe mit Zeilenumbruch darstellen lassen.
$anrede = $_POST [‚anrede‘];
$name = $_POST [‚name‘];
$email = $_POST [‚email‘];
$nachricht = $_POST [‚nachricht‘];

$mailnachricht = $betreff .$anrede. ’ '.$name. ’ Mailadresse: '.$email. ‚Nachricht:‘.$nachricht;
echo $mailnachricht;
Zeilenumbruch mit
oder \ n habe ich schon gegoogelt. Allerdings komme ich nicht auf einen grünen Zweig. z.B. möchte ich nach $name. und nach $email die Zeile umbrechen lassen.
Irgendwie müsste ich doch
oder \n in die $mailnachrichz-Zeile einbauen.
Ich habe schon an allen Stellen Anführungszeichen gesetzt. Bin fast am verzweifeln.
Könnt ihr mir auf die Sprünge helfen !?

Danke an alle

Hi,
ich versteh nicht ganz, wo das Problem liegt.
Wenn Du einen Zeilenumbruch willst, füge ihn ein.
Wenn es eine html-Email ist, wird der Zeilenumbruch im html-Körper mit
erzeugt und im Plain-Text mit \n.
Wenn es eine Plain-Text-Email ist, wird \n für den Zeilenumbruch benutzt.

Plain-Text:

$mailnachricht = $betreff."\n".$anrede."\n".$name."Mailadresse:
".$email."\nNachricht:".$nachricht; 

HTML:

$html = nl2br($mailnachricht);

Gruß, Stephan

Hi,
Du hast weit größere Folgeprobleme!

$anrede = $_POST [‚anrede‘];
$name = $_POST [‚name‘];
$email = $_POST [‚email‘];
$nachricht = $_POST [‚nachricht‘];

$mailnachricht = $betreff .$anrede. ’ '.$name. ’ Mailadresse:
'.$email. ‚Nachricht:‘.$nachricht;

Hier setzt Du ungeprüfte Usereingaben in den Mail-Header. Da können hohe Schadensersatzansprüche von Mitusern dieses Mail-Servers folgen, wenn Dein Provider Deine Seite nicht rechtzeitig sperrt.

Gruß
Ingo

Hier setzt Du ungeprüfte Usereingaben in den Mail-Header. Da
können hohe Schadensersatzansprüche von Mitusern dieses
Mail-Servers folgen, wenn Dein Provider Deine Seite nicht
rechtzeitig sperrt.

Gruß
Ingo

Ein Fass ohne Bode
Dank deiner Bemerkung habe ich versucht mich über Sicherheitslücken im php Formular zu informieren.
Einiges habe ich verstanden, das meiste nicht.
Ich bin noch ganz am Anfang vom Programmieren! Langsam möchte ich aber einen (wenigstens kleinen) Erfolg erzielen. Könnt ihr mir weiterhelfen, wie ich mein Formular sicher bekomme.
Danke für eure Mühe

mag sein das ich blind bin , aber wo siehst du hier ein mailheader ?

wo siehst du überhaupt die verarbeitung als mail.

also noch sind das nur variable mit namen die so klingen als wären sie für die mail gedacht.

Wenn du daten von POST erhälst, muss das nicht zwingend
das sein was du haben wolltest, sondern das was der user machen könnte.

Ein beispiel :
Der User kann ja seine email addresse angeben um z.b. eine anmeldungsmail zu erhalten . Oder halt Dir eine Nachricht zukommen zu lassen und als goody wird eine kopie gesendet.

im formular holen wir also text für den body und die email .

prüfen wir nun nicht die email , so könnte ein böse bube einfach
dein Skript dazu nutzen um sein text nicht nur an dich zu versenden sondern durch Angabe von mehreren Emails getrennt durch Semikolon , eine massen SPAM auslösen.

/\* daten holen \*/
$emailpost = $\_POST['email'];
/\* wenn mehr als 1 @ zeichen dann löschen für neu eingabe \*/
if (substr\_count($emailpost, '@') \> 1 ) $emailpost = "";

Ein user kann immer das senden was er will und nicht das was du dir wünscht :smile: Ergo muss man diese Möglichkeiten alle überwachen.

Hi,

also noch sind das nur variable mit namen die so klingen als
wären sie für die mail gedacht.

stimmt - deshalb meine (vielleicht vorschnelle) Warnung.
Der TE will die Eingaben auf der Seite an den User per echo ausgeben. Da dies im HTML-Kontext erfolgt, müssen die HTML-Zeilenumbrüche hinzugefügt werden, also:
$betreff.’
‚.$anrede.‘ ‚.$name.‘ Mailadresse: ‚.$email.‘
Nachricht:’.$nachricht;
htmlspecialchars() muss hier nicht zwangsläufig bemüht werden.

Wenn im mail()-Befehl dann $mailnachricht als dritter Parameter übergeben werden sollte und die anderen Parameter fest vorbelegt sein sollten, wäre das Formular sicher.
Aber ich fürchte, dass das nicht der Fall ist…

Gruß
Ingo

Hallo,

danke für eure Teilnahme.
Ihr habt recht. Noch ist es kein Mail, allerdings soll es das noch werden.
Aber sicher!! Kannst mir dies näher erläutern?

Wenn im mail()-Befehl dann $mailnachricht als dritter
Parameter übergeben werden sollte und die anderen Parameter
fest vorbelegt sein sollten, wäre das Formular sicher.
Aber ich fürchte, dass das nicht der Fall ist…

Gruß
Ingo

Danke

Moin,

Der TE will die Eingaben auf der Seite an den User per echo
ausgeben. Da dies im HTML-Kontext erfolgt

Woraus schließt Du den HTML-Kontext? Mails sind primär erstmal ein text/plan-Medium. Und Tags sind im OP auch keine drin.

In einer text/plain-Mail müssen Zeilenumbrüche natürlich mit \n gemacht werden. U.U. kann auch ein \r\n nötig sein.

Grüße,
-Efchen

Hi,

Aber sicher!! Kannst mir dies näher erläutern?

schau’ mal hier: http://www.1ngo.de/web/formmailer.html

Zu den Zeilenumbrüchen in einer Textmail: RFC 5322 spezifiziert eindeutig:
„A line is a series of characters that is delimited with the two characters carriage-return and line-feed;“
Demnach sollte stets \r\n gesetzt werden.

Gruß
Ingo

Hallo Ingo,
besten Dank für den Link.
Da ist ja mein Wochenendprojekt gesichert.
Werde mich durch deine Seite wursteln.
Kann ich mich bei Rückfragen direkt an dich wenden ?
Gruß

Hi,

Kann ich mich bei Rückfragen direkt an dich wenden ?

natürlich.

Gruß
Ingo