Hallo
$mail_text .= "HTTP Referer: " . isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '' . "\n\n";
Da werden am En de die beiden Zeilenumbrüche nicht ausgeführt. Und ich verstehe nicht, warum.
Die Zeile funktioniert rechts des Gleicheitszeichens folgendermaßen. Du beginnst mit einem Stück Text ("HTTP Referer: "
). Nach dem Verkettungszeichen folgt der ternäre Operator mit der Entscheidung, ob $_SERVER['HTTP_REFERER']
oder eine leere Zeichenkette ausgegeben werden soll (FRAGE ? ANTWORT-JA : ANTWORT-NEIN
). Deine beiden Zeilenumbrüche sind nun Bestandteil des Abschnitts mit der abschlägigen Antwort (: '' . "\n\n";
). Gibt es keinen Referer, werden auch die zwei Umbrüche eingefügt.
Du kannst die Umbrüche zum Bestandteil der Ausgabe des Referers machen (? $_SERVER['HTTP_REFERER'] . "\n\n" :
), du kannst sie auch in einer eigenen, auf diese Zeile folgenden, Anweisung anfügen. Im Übrigen brauchst du keine Verkettung von nichts (leere Zeichenkette) mit den Umbrüchen.
// Zeilenumbrüche in beiden möglichen Ausgaben
$mail_text .= "HTTP Referer: " . isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] . "\n\n" : "\n\n";
// Zeilenumbruch in einer eigenen Anweisung nach dem ternären Operator
$mail_text .= "HTTP Referer: " . isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$mail_text .= "\n\n";
// Auslassung der negativen und leeren Ausgabe
if (isset($_SERVER['HTTP_REFERER'])) $mail_text .= "HTTP Referer: " . $_SERVER['HTTP_REFERER'];
$mail_text .= "\n\n";
Das sind ein paar der Möglichkeiten.
Tschö, Auge
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett