Martino: Formulardaten übernehmen und säubern

Beitrag lesen

Liebes Forums-Orakel,

mein Perl-Skript liest übermittelte Formularfelder ein und schreib diese in MySQL. Nun ist besonders hinderlich, wenn jemand " Hochkommas eingibt, denn dann wird nichts hineingeschrieben. Ich habe deshalb folgendes geschrieben:

$Frage = $query->param('Frage');
   $Frage  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $Frage =~ s/"/\"/g; #Anf¸hrungszeichen maskieren
   $Frage =~ s/'/\'/g;

Das funktioniert. Dumm nur, dass ich es auf alle möglichen Felder anwenden will, die ganze Wurst aber nicht zig-fach schreiben will.

wie geht das, wenn ich folgendes will:

$Frage = $query->param('Frage');
&form_verarbeiten;

sub form_verarbeiten
{
 (was kann ich hier schreiben?) =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 (was kann ich hier schreiben?) =~  s/"/\"/g; #Anf¸hrungszeichen maskieren
 (was kann ich hier schreiben?) =~ s/'/\'/g;
}

Mit $_ funktioniert das leider nicht.

Vielen Dank, Martino