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 !?
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.
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.
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
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 Ergo muss man diese Möglichkeiten alle überwachen.
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…
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…
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.
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ß