Steffi: Ein Formular in der Textarea eines Formulars speichern..

Hallo, guten Morgen!

Im Rahmen eines Content Management Systems (PHP, mySql) tritt folgendes Problem auf:

Ich mache eine Site über Formulare editierbar.
Nun möchten wir ein Formular editieren. Das heisst, ein Formular wird in einer Textarea eines anderen Formulars editiert.
Klappt wunderbar, so lange das innere Formulare keine textarea beinhaltet.

Dann zerreist mir das äußere Formular (vermutlich wegen dem schliessenden </textarea>)..

gibt es da abhilfe?

Danke sagt
Steffi

  1. morgen,
    mehr input,info und source code wenns geht...
    denn versteh nich so ganz was du meinst...
    christopher

    1. Danke für dein Interesse... ich habe mal screenshots mit Erläuterungen angefertigt.
      (Das Content Management System dient der Erstellung und Editierung  neuer Webseiten. Auf den Screenshots ist ein teil des Editors dargestellt..)

      Ich hoffe, es wird dann zusammen mit meinem ersten Eintrag deutlicher..

  2. Moin!

    Nun möchten wir ein Formular editieren. Das heisst, ein Formular wird in einer Textarea eines anderen Formulars editiert.
    Klappt wunderbar, so lange das innere Formulare keine textarea beinhaltet.

    Dann zerreist mir das äußere Formular (vermutlich wegen dem schliessenden </textarea>)..

    gibt es da abhilfe?

    Aber klar. Wenn du den Quelltext der Seite in die Editier-Textarea schreibst, musst du alle HTML-eigenen Sonderzeichen (<, >, &) maskieren (<, > &). Dazu gibts die Funktion htmlspecialchars(). Der Browser zeigt dann alle Zeichen als wirkliches Zeichen an.

    Ohne diese Wandlung zeigt der Browser HTML-Tags nur durch Zufall als bearbeitbaren Text an - eigentlich müsste er die Tags verschlucken.

    - Sven Rautenberg

    1. Mann hab ich auf der Leitung gestanden!!! ;-)
      Genial!!!! Super, danke!! (yippieh, *spring, hüpf*)

    2. Hallo Sven,

      Aber klar. Wenn du den Quelltext der Seite in die Editier-Textarea schreibst, musst du alle HTML-eigenen Sonderzeichen (<, >, &) maskieren (<, > &). Dazu gibts die Funktion htmlspecialchars(). Der Browser zeigt dann alle Zeichen als wirkliches Zeichen an.

      Ohne diese Wandlung zeigt der Browser HTML-Tags nur durch Zufall als bearbeitbaren Text an - eigentlich müsste er die Tags verschlucken.

      das heißt ja, dass man den text nicht einfach aus einer Datei mit readfile() an die Textarea ausgeben kann. Da muss cih das Ding also vorher mit fread()in eine Variable einlesen, die mit htmlspecialchars() bearbeiten und dann mit echo ausgeben. Iat das so der richtige Weg?

      Immer unter der Annehme, dass nicht sowieso alles in einer DB steht...

      LG
      Chris

      1. Hallo Sven,

        Aber klar. Wenn du den Quelltext der Seite in die Editier-Textarea schreibst, musst du alle HTML-eigenen Sonderzeichen (<, >, &) maskieren (<, > &). Dazu gibts die Funktion htmlspecialchars(). Der Browser zeigt dann alle Zeichen als wirkliches Zeichen an.

        Ohne diese Wandlung zeigt der Browser HTML-Tags nur durch Zufall als bearbeitbaren Text an - eigentlich müsste er die Tags verschlucken.

        das heißt ja, dass man den text nicht einfach aus einer Datei mit readfile() an die Textarea ausgeben kann. Da muss cih das Ding also vorher mit fread()in eine Variable einlesen, die mit htmlspecialchars() bearbeiten und dann mit echo ausgeben. Iat das so der richtige Weg?

        Genau.

        Immer unter der Annehme, dass nicht sowieso alles in einer DB steht...

        Die Datenbank hilft dir da absolut nicht! Entscheidend ist, dass du korrektes HTML ausgibst. Und sowas ist eben nicht korrekt (bzw. für die Verarbeitung höchst gefährlich:
        <textarea><b>Fetter Text</b><form><textarea>Value der Textarea</textarea></textarea>

        Besser:
        <textarea><b>Fetter Text</b><form><textarea>Value der Textarea</textarea></textarea>

        Laut HTML-Standard darf <textarea> keinerlei weitere HTML-Tags enthalten. Insofern ist die erste Variante sowieso invalide, und der Browser kriegt es, weil die Tags keine Gültigkeit haben, dann hin, stattdessen den HTML-Quelltext zu zeigen. Ist aber reine Glückssache (und wenn <textarea> als Text vorkommt, zerhaut es eben die Seite).

        - Sven Rautenberg