Gottwalt Thiersch: html-tags in argument "value" in Textarea

Funktion:

Mit einem Webformular sollen beliebige auf einem Server liegende Dateien bearbeitet werden koennen

Methode:

Mit einem cgi-Script wird ein Formular erstellt, das ein Textfeld enthaelt. In dieses Textfeld wird als Value eine ganze html-Seite eingefuegt.

Problem:

Ist nun in diesem html-Code irgendwo schon die Zeichenfolge Ausfuehrungszeichen-spitze Klammer zu, so wird hier die Textarea beendet, und es folgt Codemuell, der je nach Browser unterschiedlich interpretiert wird.

Frage:

Wie erreiche ich, dass der durch eine Variable eingefuegte Text in der Textarea quasi nicht als html-Code interpretiert wird? Also dass alle Sonderzeichen etc. zwar ausgegeben, aber vom Browser nicht interpretiert werden, bis wirklich der Abschluss von Value kommt?

Oder gibt es fuer den oben beschriebenen Zweck schon gute Moeglichkeiten, die ich noch nicht gefunden habe?

Herzlichen Dank fuer jeden Tip!

Gottwalt

  1. Hi,

    Wie erreiche ich, dass der durch eine Variable eingefuegte Text in der Textarea quasi nicht als html-Code interpretiert wird? Also dass alle Sonderzeichen etc. zwar ausgegeben, aber vom Browser nicht interpretiert werden, bis wirklich der Abschluss von Value kommt?

    gar nicht. Du mußt ihm einfach nur den _richtigen_ HTML-Code liefern:

    s/"/& quot;/g;
    s/</& lt;/g;
    s/>/& gt;/g;

    Hier mal wegen fortschreitenden Verfalls der Codierung ;-) mit zusätzlichen Leerzeichen.

    Übrigens sind Quotes innerhalb einer Textarea eigentlich nicht das Problem, weil Du gar kein value-Attribut hast...

    Cheatah

    1. gar nicht. Du mußt ihm einfach nur den _richtigen_ HTML-Code liefern:

      s/"/& quot;/g;
      s/</& lt;/g;
      s/>/& gt;/g;

      Das laesst sich leider nicht machen, ich muss den tatsaechlichen Code bearbeiten. Aber ich stand ja furchtbar auf dem Schlauch!!! Ich muss den Code ja einfach zwischen Textarea Anfang und Textarea Ende einfuegen! So wird man vor lauter Coden irgendwann komplett blind! DANKE EUCH BEIDEN!!!

      Gottwalt

  2. hi ho

    soweit ich weiss, gibt es fuer <textarea> kein attribut "value". (http://www.w3.org/TR/html4/interact/forms.html#h-17.7)

    dort steht der inhalt zwischen <textarea> und </textarea>.

    du solltest, um eine korrekte Darstellung zu gewahrleisten,

    a) das & - Zeichen maskieren (&)
    b) < und > in < und > umwandeln.

    cua

    n.d.p.