Beat: Perl: Zahl Vergleichsoperator

Beitrag lesen

und wie solls jetzt weitergehen? Ich kann $zahl auf keinen Fall so in die Datenbank eintragen, das gibt einen Error wenn ich versuche $zahl in eine INT-Spalte einzutragen.

Da du userinput entgegennimmst wirst du mit einem regulären Ausdruck zuerst ein gültiges Datum herausziehen müssen.

$unclean{zahl} =~/(\d+)/ and $clean{zahl}=$1
   or $clean{zahl}=42;

mfg Beat

was soll ich denn bitte mit /(\d+)/ ??? Das heisst ja nur, dass im String min. 1 Zahl vorkommen muss.
Du meintest wohl eher sowas wie /^\d$/
Und die clean-Lösung durchblick ich auch nicht so richtig. Was soll das bezwecken?

Wenn du dein script mit -T aufrufst, musst du allen Userinput waschen.
Das kann nur geschehen durch eine RE, wobei du den gültigen Wert extrahierst.

falsches Vorgehen
  $unclean{zahl} =~/^\d+$/ and $clean{zahl}=$unclean{zahl};

jetzt ist $clean{zahl) immer noch tainted

liest du selber nach zum Thema tainted und Sicherheit.

Ich habe die hashes zu Verdeutlichung benannt.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische