Rolf Rost: HTML in Textarea (CGI)

hi,

hab die Möglichkeit eine HTMLDatei via CGI zu editieren, da stehen zb. Umlaute drin die umschrieben sind wie
                 ampersandAuml;

In der Textarea (das ist das *Editfenster* im CGI) sehe ich jedoch ein Ä und wenn ich die Datei zurückschreibe steht dann ein Ä in der Datei. Ähnlich ists mit lt; und gt; ...

Wie kann ich das Problem umgehen, gibt es ein Attribut für die Textarea was die Zeichen nicht als HTML Code interpretiert?

Rolf

  1. hab die Möglichkeit eine HTMLDatei via CGI zu editieren, da stehen zb. Umlaute drin die umschrieben sind wie
                     ampersandAuml;

    Das steht so buchstäblich im HTML-Quellcode?

    In der Textarea (das ist das *Editfenster* im CGI) sehe ich jedoch ein Ä und wenn ich die Datei zurückschreibe steht dann ein Ä in der Datei. Ähnlich ists mit lt; und gt; ...

    Wie kann ich das Problem umgehen, gibt es ein Attribut für die Textarea was die Zeichen nicht als HTML Code interpretiert?

    Wenn in Deinem Quellcode Ä steht (statt dem, was Du oben zitiert hast): Das Kürzel für das Und-Zeichen ist &, ersetze also Ä durch Ä.

    Gruß,
      soenk.e

    1. hi Sönke,

      leider geht das so einfach nicht, denn wenn ich das ampersand auch noch umschreibe sehe ich ja dann kein Ä im HTML sondern ein Ä

      Also: In der Textara soll kein HTML Interpretiert werden.

      Noch ein Vorschlag?

      Rolf

      hab die Möglichkeit eine HTMLDatei via CGI zu editieren, da stehen zb. Umlaute drin die umschrieben sind wie
                       ampersandAuml;

      Das steht so buchstäblich im HTML-Quellcode?

      In der Textarea (das ist das *Editfenster* im CGI) sehe ich jedoch ein Ä und wenn ich die Datei zurückschreibe steht dann ein Ä in der Datei. Ähnlich ists mit lt; und gt; ...

      Wie kann ich das Problem umgehen, gibt es ein Attribut für die Textarea was die Zeichen nicht als HTML Code interpretiert?

      Wenn in Deinem Quellcode Ä steht (statt dem, was Du oben zitiert hast): Das Kürzel für das Und-Zeichen ist &, ersetze also Ä durch Ä.

      Gruß,
        soenk.e

      1. leider geht das so einfach nicht, denn wenn ich das ampersand auch noch umschreibe sehe ich ja dann kein Ä im HTML sondern ein Ä

        Also: In der Textara soll kein HTML Interpretiert werden.

        Kannst Du das Problem nochmal beschreiben? Was hast Du im HTML-Quellcode, was soll im <textarea> erscheinen, was erwartest Du in den empfangenen Formulardaten?

        Gruß,
          soenk.e

        1. hi Sönke,

          Kannst Du das Problem nochmal beschreiben? Was hast Du im HTML-Quellcode, was soll im <textarea> erscheinen, was erwartest Du in den empfangenen Formulardaten?

          Jow, gerne.

          Ich möchte das Editieren von HTMLContents via CGI ermöglichen.

          Auf der PerlBase http://perlbase.xwolf.de hab ich das bereits realisiert, hier wird jedoch jede spitze Klammer in eine *Umschreibung* verwandelt
           aus >
           wird >

          wobei das Zeichen > in der DB gespeichert wird aber die Funktion welche den Inhalt darstellt dieses Zeichen umwandelt....

          ...womit jeder via CGI/Textarea eingefplegter Inhalt nicht mehr so wirklich als HTML dargestellt wird - keine Kunst ;-)

          An anderer Stelle möchte ich jedoch dass ein Zeichen > als > in der Textarea dargestellt wird und ein > als >
          Indes: es ist so dass ein > auch in der Textarea als > dargestellt wird und wenn ich das so zurückschreiben lasse wird daraus ein >
          Aber es soll ja ein > bleiben.

          Hier in der Vorschau gehts, wie macht ihr das ?

          Rolf

          Gruß,
            soenk.e

          1. An anderer Stelle möchte ich jedoch dass ein Zeichen > als > in der Textarea dargestellt wird und ein > als >
            Indes: es ist so dass ein > auch in der Textarea als > dargestellt wird und wenn ich das so zurückschreiben lasse wird daraus ein >
            Aber es soll ja ein > bleiben.

            Wie ich bereits sagte: <textarea> funktioniert genauso wie jeder andere Bereich eines HTML-Dokuments auch. Willst Du ein Kleiner-Als angezeigt haben, schreibe < in den Quelltext, willst Du ein Und haben, schreibe &, willst Du den Text > haben, schreibe &gt;, willst Du ein ö haben, schreibe ö :

            <textarea rows=2..>
              < & &gt; ö
              </textarea>

            ergibt im Browserfenster folgende Darstellung:

            +--------------+
              | < & > ö   |
              |              |
              +--------------+

            Diesen dargestellten Text erhältst Du dann im Anchluss exakt vom Browser geliefert, d.h. um die HTML-Maskierungen brauchst Du Dich lediglich bei der Ausgabe des HTML-Dokuments kümmern. In PHP gibt's dafür eine Funktion namens htmlentities(), in der von Dir verwendeten Sprache findest Du sicher etwas ähnliches.

            Gruß,
              soenk.e

            1. hi Sönke,

              vielen Dank! Genau das wars, der Trick dabei ist der dass ich das Ampersand ersetzten muss an der Stelle wo der Content in die Textarea geladen wird. Und so gehts auch ;-)

              Take a little look:
              http://i-netlab.de/cgi-bin/index.cgi?display=4.4

              ----> es geht mir irgendwann mal darum ein Webfrontend zu schreiben womit text/html Inhalte in Datenbanken via Browser gemanaged werden.

              Viele Grüße, Rolf

  2. Hallo Rolf,

    soweit ich weiß, wir der Text in einem Textfeld oder in einer Textarea nicht als HTML-Code betrachtet, sondern als reine ASCII-Zeichen.

    Eventuell stellt dein CGI-Skript schon etwas mit dem Inhalt des Textfeldes an? Vor kurzem hatte ich ein ähnliches Problem im Umgang mit XML-Dateien. Das Modul XML::Elemenst (welches auf HTML::Elements basiert) wandelt Standardmäßig alle Sonderzeichen in HTML-Code um.

    Gruß
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. hi,

      soweit ich weiß, wir der Text in einem Textfeld oder in einer Textarea nicht als HTML-Code betrachtet, sondern als reine ASCII-Zeichen.

      unsinn. woher sollte die textarea denn dann "wissen", wo sie zuende ist - ist </textarea> jetzt der abschliessende tag, oder ist es der ascii-text </textarea>?

      gruss,
      wahsaga