Jojo: HTML in einem Textfeld

Hallo zusammen,

ich habe ein Problem, bei dem ich selber nun nicht mehr weiter weiß: Ich möchte eine HTML-Seite (oder auch nur einen Teil davon) über ein Formular in einer anderen HTML-Seite editieren können. Das funktioniert so, dass ich eine "Editor-Seite" mit einem Formular erstelle und dort eine Textarea einfüge. In diese Textarea lade ich per PHP den Inhalt der zu editierenden Datei 1:1.

Wenn ich normalen Text mit Sonderzeichen (z.B. Anführungszeichen) in das Textfeld schreibe, dann werden diese Sonderzeichen beim Speichern in die Datei geflüchtet (mit escape-Zeichen davor). Wenn ich die Datei dann lade, dann erscheinen diese Anführungszeichen mit den Escape-Fluchtzeichen allerdings wieder in der Textarea (sie sind schließlich Teil der Datei!). Wenn ich den Inhalt dann wieder speichere, dann werden auch die Escape-Zeichen vor den Sonderzeichen wiederum geflüchtet. Das kann ja so nicht sein...

Wenn ich anstatt den Sonderzeichen die HTML-konformen Sonderzeichen verwende (also " anstatt " usw.), dann werden sie beim Laden der Datei interpretiert und beim Speichern wieder geflüchtet.

Kann mir jemand bei meinem Problem weiterhelfen? Gibt es eine Möglichkeit die Interpretation von textarea-Inhalten zu verhindern? Oder kann PHP etwas beim Speichern und Lesen von und aus Dateien tun?

Vielen Dank schon mal im Voraus.

Gruß Jojo

  1. Hallo ihr da draußen,

    Wenn ich normalen Text mit Sonderzeichen (z.B. Anführungszeichen) in das Textfeld schreibe, dann werden diese Sonderzeichen beim Speichern in die Datei geflüchtet (mit escape-Zeichen davor)

    Mit stripslashes($_GET['namedertextarea']) "anti-escapen"

    Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),
    Dogfish

    --
    Let's close our eyes and see what happens
    (http://dogfish.net.tc / http://dogfishus.net.tc)
    1. Mit stripslashes($_GET['namedertextarea']) "anti-escapen"

      Vielen Dank, ich werd's ausprobieren... :)

      Gruß zurück nach Biberach.
      Jojo

      1. Mit stripslashes($_GET['namedertextarea']) "anti-escapen"

        Vielen Dank, ich werd's ausprobieren... :)

        Sorry, funktioniert nicht!:
        Ich baue die Funktion vor dem Schreiben in die Datei ein - klappt! Die Datei wird auch richtig gespeichert (z.B. wenn im Textfeld " " vorkommt wird das auch so gespeichert. Dann lade ich den Inhalt der Datei in das Textfeld: Es erscheint ein Leerzeichen (das ist aber falsch, es muss " " dastehen! Bzw. wenn ich " speichere, dann erscheint " . Ich weiß mir nicht zu helfen. Gibt es nicht ein Attribut, das in meinem Textfeld keine Interpretation veranlasst, sondern die Daten einfach so ausgibt?

        Das ganze ist ja so:

        <html>
        <body>
        <textarea>
           <html>
           <body>
           <p>Hallo</p>
           </body>
           </html>
        </textarea>
        </body>
        </html>

        Das klappt. Aber:

        <html>
        <body>
        <textarea>
           <html>
           <body>
           <p>"Hallo"</p>
           </body>
           </html>
        </textarea>
        </body>
        </html>

        klappt nicht. Wird der Inhalt des Textfeldes intern vielleicht in "" übergeben?