Phil: Textarea erkennt keine Zeilenumbrüche (Enter)

Hallo Zusammen,

Habe ein kleines Problem. Ich habe ein Textarea in welchem ich einen Text eingebe. Natürlich verwende ich dabei auch Zeilenumbrüche (Enter Taste). Danach wird das ganze in eine MYSQL Datenbank eingefügt.

Öffne ich ich mit phpmyadmin die Datenbank-Tabelle werden diese Zeilenumbrüche auch angezeigt.

Rufe ich den kompletten Text jedoch aus der Datenbank ab und gebe ihn auf meiner Website aus, werden diese Zeilenumbrüche nicht angezeigt. Es ist dann nur noch ein fortlaufender Text!

Wie kann ich das ändern?

Beispiel

"Mein Text

mit Zeilen-
umbrüchen" ==> wir mittels $_POST ausgelesen und in MYSQL abgelegt ==> News wernde wieder ausgelesen & ausgegeben mittels echo $news = $row->news; ==> Der Text wird dan aber so ausgegeben: "Mein Text mit Zeilen-umbrüchen"

DANKE!

  1. Hi!

    Schau mal in deinen HTML quellcode. Mit Sicherheit sind die da. Nur kennt HTML soetwas nicht. Wenn du nicht <pre> benutzen willst, ist nl2br dein Freund.

    1. Jep, jep!

      Ihre habt Recht! Im Quelltext sind die Zeilenumbrüche natürlich vorhanden, wenn auch nicht als <br>(was ich ja gerne hätte :-). Leuchtet mir ein, dass HTML sowas nicht kennt! Werde es gleich mit nl2br versuchen!

      Vielen Dank für die super Hilfe! Gruss Phil

      1. Hello,

        Ihre habt Recht! Im Quelltext sind die Zeilenumbrüche natürlich vorhanden, wenn auch nicht als <br>(was ich ja gerne hätte :-). Leuchtet mir ein, dass HTML sowas nicht kennt! Werde es gleich mit nl2br versuchen!

        und vergiss das htmlspecialchars() nicht, denn sonst könnte es torzdem Deine HTML-Ansicht der Seite zerschießen.

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Danke für den Hinweis!

          Hat alles bestens geklappt!

          Die Funktion htmlspecialchars() kann ich aber leider nicht verwenden, da mein Server diese nicht akzeptiert und nur eine Fehlermeldung ausspuckt.

          Wenn ich htmlspecialchars() nicht verwende, die Ausgabe nur mit nl2br dennoch gut aussieht, ist das ja egal, oder?

          Danke und Gruss

          1. Hi,

            Die Funktion htmlspecialchars() kann ich aber leider nicht verwenden, da mein Server diese nicht akzeptiert und nur eine Fehlermeldung ausspuckt.

            Und welche soll das bitte sein?

            Lass mich raten - etwas a la "unknown function [wie-auch-immer-du-htmlspecialchars-falsch-geschrieben-hast]" ...?

            Wenn ich htmlspecialchars() nicht verwende, die Ausgabe nur mit nl2br dennoch gut aussieht, ist das ja egal, oder?

            Nein, ist es nicht. Informiere dich ueber das Stichwort XSS.

            MfG ChrisB

            --
            "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
          2. Hi!

            Wenn ich htmlspecialchars() nicht verwende, die Ausgabe nur mit nl2br dennoch gut aussieht, ist das ja egal, oder?

            wie sagt meine Mama immer? Egal ist 88.

            Angenommen ein User traegt HTMLcode ein. Dann wird dieser auch als HTMLcode interpretiert. Damit ist aber z.B. auch ne JS Injektion moeglich.

            Beispiel:

            Ein User screibt ein Kommentar und fuegt ein <script> ein, dass auf schaedlichen JS Code weist. (Es gibt z.B. JavaScript proxies, die man so auf fremde Rechner bringen koennte.) Oder schreibt gleich selbst seitenlange Skripte, dann wird das vom Browser auch so interpretiert und Deine Seite ist eine echte Sicherheitsluecke.

            Htmlspecialchars() nimmt z.B. die spitzen Klammern < und > und macht daraus HTMLcodes, sodass nachher dort <script> zu lesen ist. Einfuegen von spaeter interpretierten Tags ist nicht mehr moeglich.

            Deshalb ist es verwunderlich, dass diese Funktion abgeschaltet ist. Sie ist eigentlich das A und O bei der Sicherheitslueckenbekaempfung. Bliebe noch striptags, aber damit kann man dann z.B. keine HTMLcodes mehr posten, weil alles was nach HTMLtag aussieht einfach entfernt wird.

            Man koennte dann noch mit eigenen Funktionen auf 'specialcodesuche' gehen.

            --
            "Sei froh dass du nen Virenscanner hast, der schlauer ist als du..."
             
  2. Hello,

    Rufe ich den kompletten Text jedoch aus der Datenbank ab und gebe ihn auf meiner Website aus, werden diese Zeilenumbrüche nicht angezeigt. Es ist dann nur noch ein fortlaufender Text!

    Hast Du den ausgelieferten text schon mal im HTML-uellcode angeschaut?
    Sind dort Zeilenumbrüche vorhanden?

    Dann wäre es sinnvoll, dass Du den Text vorher Kontextgerecht aufbereitest

    $out = nl2br(htmlspecialchar($text));

    echo $out;

    Geht natürlich auch in einem Schritt :-)

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de