HIM: Zeilenumbrüche

Hallo Zusammen

Ich habe eine kleine Frage:

Ich schreibe über ein Formular Daten in eine Datenbank. Die Zeilenumbrüche in einem Textfeld, die ich bei der Eingabe im Formular gemacht habe, werden aber bei einer Ausgabe der Daten nicht berücksichtigt. Wie schaffe ich es, dass diese Zeilenumbrüche auch bei der Ausgabe (bspw. auf einer anderen Seite) berücksichtigt werden? Gibt es da einen bestimmten Trick bei der Erfassung resp. beim Code für die Ausgabe?

Danke für Eure Hilfe.

Gruss
HIM

  1. Hallo,

    Die Zeilenumbrüche in einem Textfeld, die ich bei der Eingabe im Formular gemacht habe, werden aber bei einer Ausgabe der Daten nicht berücksichtigt.

    Werden sie vermutlich doch.
    Guck mal in den HTML-Quelltext.

    Du brauchst vermutlich nl2br()
    http://www.php.net/manual/de/function.nl2br.php

    Ansonsten:
    http://www.tiptom.ch/homepage/faq.html?q=zeilenumbruch

    Gruesse,

    Thomas

    1. Hallo Thomas

      Danke für deinen Hint.......aber ich check das nicht ganz.....*schäm*

      Kannst Du mir ein kleines Beispiel vom Code machen?

      HIM

      1. Hallo,

        Danke für deinen Hint.......aber ich check das nicht ganz.....*schäm*

        Kannst Du mir ein kleines Beispiel vom Code machen?

        Benutzereingabe:
        Zeile 1
        Zeile 2

        Wird per Formular -> Skript -> Datenbank gespeichert als:
        Zeile 1\nZeile 2

        Bei der Ausgabe steht nun im HTML-Quelltext:
        Zeile 1
        Zeile 2

        Weil Zeilenumbrueche im HTML-Quelltext aber nicht
        angezeigt werden (ausser zwischen <pre> und </pre>),
        wird dem Benutzer angezeigt:
        Zeile 1 Zeile 2

        Wenn Du statt
        print($variable);
        schreibst:
        print(nl2br($variable));
        dann steht im HTML-Quelltext:

        Zeile 1<br />
        Zeile 2

        Und folgendes wird angezeigt:

        Zeile 1
        Zeile 2

        Hoffe, jetzt ist es klar;-)

        Gruesse,

        Thomas

        1. Danke Dir!

          Jetzt, glaube ich, habe ich's gerafft!

          HIM

    2. Hello,

      die erzwungenen Zeilenumbrüche in einem Textfeld (Textarea) werden als \r\n (Windows) im Textstream gespeichert (wrap=soft ...)

      Vor dem Abspeichern in der MySQL-Datenbank sollte man sie mit mysql_escape_string() maskieren.

      Beim Wiederholen der Daten fällt die Maskierung automatisch fort (da sie in Wirklichkeit gar nicht abgespeichert wird, sondern nur für die Schnittstelle gedacht ist)

      Gibt man diese Daten nun in einem Textfeld wieder aus, sollte man sie vorher auf jeden Fall mit htmlentities() oder wenigstens htmlspecialchars() behandeln. Die Zeilenumbrüche werden auch wieder dargestellt.

      Stellt man die selben Daten nun im normalen HTML-Text dar, muss das für den Umbruch notwendige <br /> hinzugefügt werden. Das erfolgt z.B. durch die Funktion nl2br(). Die \r\n Zeichen werden dabei nicht entfernt, sondern durch ein nachfolgendes <br> (leider noch nicht <br />) ergänzt.

      Die Reeihenfolge der Funktionen nl2br() und htmlentities() sollte daher auch klar sein: erst die html-Sonderzeichen ersetzen, dann das break einsstanzen:

      $ausgabe = nl2br(htmlentities($datenbankwert));

      Grüße

      Tom

      1. Hallo,

        [ Eroerterungen zu nl2br() ]
        <br> (leider noch nicht <br />)

        Doch, bereits seit PHP 4.0.5 schreibt es eben "leider" [1] <br />,
        ob man will oder nicht:
        http://www.php.net/manual/de/function.nl2br.php

        Gruesse,

        Thomas

        [1] AFAIK ist <br /> in HTML 4.01 _falsch_.

        1. hi,

          [1] AFAIK ist <br /> in HTML 4.01 _falsch_.

          zumindest bei 4.01 transitional geht es ohne beanstandung durch den validator.

          gruss,
          wahsaga

      2. Hi,

        sondern durch ein nachfolgendes <br> (leider noch nicht <br />) ergänzt.

        bei mir schon, und das ist eine relativ alte Version von PHP (die genaue Nummer kenn ich nicht auswendig), aber ein Update sollte das behebn

        E7

        1. Hello,

          sondern durch ein nachfolgendes <br> (leider noch nicht <br />) ergänzt.

          bei mir schon, und das ist eine relativ alte Version von PHP (die genaue Nummer kenn ich nicht auswendig), aber ein Update sollte das behebn

          Na, kann sich ja jeder mal irren. Jedenfalls schön, dass wir drüber gesprochen haben *grins*

          Grüße

          Tom