Alex: Zeilenumbrüche in Get-Variablen

Guten Abend.

Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen. Wenn ich mir den Wert der Get-Variable nach dem Absenden oder auch in der Datenbank anschaue, dann wurde dort jeweils ein Zeilenumbruch durch ein Leerzeichen ersetzt?

Was muss ich machen, um die Zeilenumbrüche beim Speichern nicht zu verlieren?

Danke
Alex

  1. Moin Alex,

    Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen. Wenn ich mir den Wert der Get-Variable nach dem

    kurze Zwischefrage, warum nicht per POST?

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Was wäre nach nl2br($getvariablemitinhalt); ?
      Grüße, Matze

      1. Moin!

        Was wäre nach nl2br($getvariablemitinhalt);?

        Das Problem immer noch nicht gelöst:

        nl2br --  Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

        D.h. nl2br ersetzt dir keine Zeilenumbrüche, es erweitert sie nur.

        Aber warum nicht $getvariablemitinhalt durch $postvariablemitinhalt ersetzen?

        Viele Grüße,
        Robert

        1. Stimmt, allgemein gute Frage. Post wär besser.

          Aber auf der Seite gibts auch die Lösung oder irr ich mich?

          /* FORMATS LINE BREAKS WITH PROPER HTML TAGS */
          function format_html($content)
           {
            $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
            $content = "" . str_replace("<br/><br/>", "</p><p>", $content) . "";
            return "" . str_replace("<br/><li>", "<li>", $content) . "";
           }

          Aber was willst du eigentlich machen?
          Vielleicht reicht dir ja schon:

          addslashes(htmlspecialchars($variablemitinhalt));

          bei der Ausgabe kannst du die Zeilenumbrüche dann
          meinetwegen mit eregi_replace(...) wieder herstellen.

          Grüße, Matze

          1. Hallo,

            $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";

            ^^^^
            was ist mit Linux? ;)

              
            $a=array("\r\n","\n\n","\n");  
            $b=array("\n",'</p><p>','<br>');  
            $content='<p>'.str_replace($a,$b,htmlspecialchars($content)).'</p>';  
            
            

            Gruß aus Berlin!
            eddi

            1. Hello,

              $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
                                                   ^^^^
              was ist mit Linux? ;)

              Was genau sendet denn Dein Browser unter Linux für einen Zeilenumbruch?
              Hast Du mal reingeschaut?
              Er muss ja das Protokoll einhalten, und da werden Zeilenumbrüche durch CRLF gekennzeichnet.

              Harzliche Grüße vom Berg
              http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau

              1. Hallo Tom :)

                $content = "<p>" . str_replace("\r\n", "<br/>", $content) . "";
                                                     ^^^^
                was ist mit Linux? ;)

                Was genau sendet denn Dein Browser unter Linux für einen Zeilenumbruch?

                er sendet <LF>

                Hast Du mal reingeschaut?

                - nicht in die Sourcen, aber in dem Fall reichen mir übertragene Formularwerte.

                Er muss ja das Protokoll einhalten, und da werden Zeilenumbrüche durch CRLF gekennzeichnet.

                Richtig, daß tut er auch wenn er HTTP-Header sendet. Nur fallen per POST übergebene Werte unter "Message-Body" und haben mit dem HTTP der Anfrage nichts zutun. Per GET übergebene Werte sind in der Anfragezeile enthalten und müssen eh codiert vorliegen, da dort ein <CRLF> definitiv zu Fehlern im Protokoll führen würde.

                Gruß aus Berlin!
                eddi

  2. gudn tach!

    Ich möchte Daten, die in einer Textarea eingegeben werden, per Get-Methode absenden. Leider scheinen dabei die Zeilenumbrüche verloren zu gehen.

    hmm, vielleicht hilft dir schon http://de.selfhtml.org/html/formulare/eingabe.htm#bereiche_umbruch weiter. ansonsten praezisiere mal das problem. was genau gibst du in das formular ein? wie genau stellst du fest, dass die zeilenumbrueche nach dem absenden nicht mehr vorhanden sind?

    prost
    seth

  3. Danke euch für die Antworten!

    War ein Fehler meinerseits.
    Die Verwendung von Post deshalb nicht, damit diese Meldung im Browser beim Zurückspringen nicht erscheint.

    Alex