Cheatah: Welche Sonderzeichen in textareas escapen?

Beitrag lesen

Hi,

$pg=~s/&/&/g;
$pg=~s/</&#x003C;/g;
$pg=~s/>/&#x003E;/g;

ja. Definierte Entities wie & würden es allerdings auch tun.

Nach dem submitted der textarea müssen die escapten Werte wieder zurückgewandelt werden

Nein. Nach dem Parsen des gelieferten HTML-Codes durch den Client sind keine Entities mehr vorhanden - und wenn doch, wurden sie als solche eingegeben und müssen ergo bleiben.

$in{'data'} =~ s/&#x003C;/</g;

%in? Hast Du das aus CGI::param erzeugt? Wenn ja, warum? Wenn nein, warum nicht?

Frage: Hab ich beim escapen der Werte noch irgentwas übersehen?

Das Content-Modell von <textarea> enthält PCDATA. Das bedeutet, HTML-spezifische Zeichen müssen escaped werden, inklusive des Escape-Zeichens "&" selbst. Theoretisch reichen also "&" und "<" - es ist allerdings alles andere als falsch (um nicht zu sagen, um vieles besser), einfach HTML::Entities einzusetzen. Dadurch entfällt dann auch die Beschränkung auf Text-Dateien.

Cheatah

--
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes