abbs: HTML Verarbeitung unterbinden

Guten Tag allerseits...

Ich habe ein Problem: Wenn ich in einer Textarea HTML Code eingebe, dann wird es gleich verarbeitet, ich will jedoch, dass es den Code bei der Ausgabe anzeigt und dass er nicht verarbeitet wird. Wie kann man das unterbinden? Ein Beispiel wären die Gästebücher von guestbook.de, wo man beim Eintragen ja die HTML-Verarbeitung per Klick ins Optionsfeld deaktivieren kann.

Besten Dank und Grüsse aus der Schweiz

  1. Morgen.

    Ich habe ein Problem: Wenn ich in einer Textarea HTML Code eingebe, dann wird es gleich verarbeitet, ich will jedoch, dass es den Code bei der Ausgabe anzeigt und dass er nicht verarbeitet wird.

    Du musst die öffnenden Klammern jedes HTML-Tags maskieren. Infos hierzu:
    http://de.selfhtml.org/html/allgemein/zeichen.htm#html_eigene

    Freundschaft!
    Siechfred

    --
    Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
    Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)
    ie:) fl:) br:? va:{ ls:? fo:§ rl:( n4:} ss:? de:µ js:{ ch:° sh:( mo:? zu:}
    1. Danke vielmals, genau das habe ich gesucht! Wenn ich bei der Textarea jedoch einen Button habe, welcher beim Betätigen ein "<strong>-tag einfügt, wird dieser ja auch nicht mehr interpretiert... Nun heisst die einzige Lösung nur noch BBCode, oder? Habe mal den Parser von Christian Seiler durchstudiert, habe es auch probiert, aber die BBCode Tags werden nicht interpretiert. Muss ich einfach die Datei von Seiler includen und dann sollte das ganze automatisch gehen??

      Gehört das ganze mit dem BBCode überhaupt hierrein?

      Danke für die Antowrten!

      1. Hi,

        Danke vielmals, genau das habe ich gesucht! Wenn ich bei der Textarea jedoch einen Button habe, welcher beim Betätigen ein "<strong>-tag einfügt, wird dieser ja auch nicht mehr interpretiert...

        das liegt daran, dass kein HTML-Kontext besteht, sondern der _String_ "<strong>" einem Wert hinzugefügt wird.

        Nun heisst die einzige Lösung nur noch BBCode, oder?

        Nö.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. html kontext? was ist das?

          1. Hi,

            html kontext? was ist das?

            ein Kontext ist ein Zusammenhang oder Umfeld, gewissermaßen eine Situation. Ein Xyz-Kontext ist also ein Zusammenhang, in dem Xyz gilt oder zutrifft.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. Morgen.

            html kontext? was ist das?

            Du fügst der Nutzereingabe in der Textarea den _String_ <strong> hinzu, nicht den HTML-Tag. Zu einem HTML-Tag (also einer HTML-Angabe, die der Browser interpretiert) wird es erst, wenn du die Eingaben aus der Textarea irgendwo in einer HTML-Seite ausgeben lässt, und dann erst wird es seiner Bedeutung nach umgesetzt (der Text wird fett dargestellt).

            Du musst also mittels einer Programmiersprache deiner Wahl entscheiden, welche Strings als HTML-Tags interpretiert werden sollen und welche nicht. Dazu empfiehlt sich die Verwendung von BBCode. Ein kleines Beispiel:

            Eingabe in der Textarea:
            'Ich bin <strong>doof</strong>, weil ich ein [fett]Ossi[/fett] bin.'

            Verarbeitung mittels RegEx in Perl:

            beseitige alle öffnenden Klammern und entschärfe so die strong-Tags:

            $eingabe =~ s/</&lt;/g;

            interpretiere BBCode und ersetze ihn durch die entsprechenden HTML-Tags:

            $eingabe =~ s/[fett]/<strong>/gi;
            $eingabe =~ s/[/fett]/</strong>/gi;

            Ergebnis:
            'Ich bin &lt;strong>doof&lt;/strong>, weil ich ein <strong>Ossi</strong> bin.'

            Freundschaft!
            Siechfred

            --
            Punk's not dead: http://www.siechfreds-welt.de/badreligion.shtml
            Dankbarkeit, man spürt sie ja so selten bei den Menschen, und gerade die Dankbarsten finden nicht den Ausdruck dafür, sie schweigen verwirrt, sie schämen sich und tun manchmal stockig, um ihr Gefühl zu verbergen. (Stefan Zweig)
            ie:) fl:) br:? va:{ ls:? fo:§ rl:( n4:} ss:? de:µ js:{ ch:° sh:( mo:? zu:}
  2. Guten Tag allerseits...

    Ich habe ein Problem: Wenn ich in einer Textarea HTML Code eingebe, dann wird es gleich verarbeitet, ich will jedoch, dass es den Code bei der Ausgabe anzeigt und dass er nicht verarbeitet wird. Wie kann man das unterbinden?

    Besten Dank und Grüsse aus der Schweiz

    du musst auf dem script, das die Daten verarbeitet,
    eine Routoine schreiben welche <> maskiert
    aus < wird &lt;
    aus > wird &gt;

    damit wird HTML sichtbar angezeigt und kann nicht interpretiert werden.

    in Perl lautet eine solche Anweisung:

    $body =~ s/</&lt;/g;
    $body =~ s/>/&gt;/g;

    das ist aber nur im body sinnvoll, in den anderen Feldern sollten n HTML und SSI ganz gelöscht werden.

    mfg Beat

  3. Hi abbs,

    falls du PHP verwendest:

    http://at.php.net/manual/de/function.htmlentities.php
    http://at.php.net/manual/de/function.htmlspecialchars.php
    Für die Abfrage, ob es ausgeführt werden soll oder nicht, brauchst du lediglich den Status deiner Checkbox abfragen und führst obige Funktionen je nach Ergebnis der Abfrage aus oder nicht.

    Kurt

    --
    Nein, ich beantworte keine Anfragen per e-mail.
    ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
    "Das Glueck ist das einzige, das sich verdoppelt, wenn man es teilt."  (Albert Schweitzer; dt. Theologe, Mediziner u. Philosoph; 1875-1965)
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at