Mysql: HTML Tags und ihre Tücken ?
AndreasN
- perl
Hallöchen ...
Ich habe mich mal rangesetzt, und ein Gästebuch geschrieben. So komplett nach meinen Wünschen. Soweit so gut. Funktioniert alles wunderbar. Aber ein Problem hab ich da noch, und kommd einfach auf keine Lösung:
$input{'text'} =~s/</</g;
$input{'text'} =~s/>/>/g;
Mit den beiden Regulären Ausdrücken werden alle HTML Tags herausgefiltert. Oder besser gesagt sichtbar , aber funktionslos gemacht. Das sollen sie auch. ( Sieht auch gut aus, auf der Vorschau seite ) Nur wenn der Text inkl. des Links ( oder ähnliches) in die mySQL DB eingetragen wird, wird bei der Ausgabe < und > in < > umgewandelt. Das ist leider nicht das was ich gerne hätte.
Vielleicht weiss da eine(r) von Euch eine Lösung ?
Bin für jeden Tipp dankbar.
Vielen Dank schon im voraus
Gruss
Andreas
use Mosche;
Ich habe mich mal rangesetzt, und ein Gästebuch geschrieben. So komplett nach meinen Wünschen. Soweit so gut. Funktioniert alles wunderbar. Aber ein Problem hab ich da noch, und kommd einfach auf keine Lösung:
$input{'text'} =~s/</</g;
$input{'text'} =~s/>/>/g;
Du willst wahrscheinlich HTML::Entities verwenden, das macht das ganze für dich (inkl. alle Umlaute richtig kodieren).
Nur wenn der Text inkl. des Links ( oder ähnliches) in die mySQL DB eingetragen wird, wird bei der Ausgabe < und > in < > umgewandelt. Das ist leider nicht das was ich gerne hätte.
Arbeitest du mit $dbh->quote()? Denn die quote() Funktion ist extra dazu gedacht, Datenbankspezifische Sonderzeichen richtig zu maskieren. Das ist (denke ich) das, was du suchst.
use Tschoe qw(Matti);