BCS Computersysteme Holzhau Tino Bellmann

Numerische Eingaben mit Perl testen

Manche Internet-Applikationen, darunter sogar bekannte Onlineshops, erlauben bei "Menge" oder "Preis" die Eingabe von Buchstaben oder Sonderzeichen. Oft wird empfohlen, die Prüfung der Formulareingaben per Javascript zu erledigen. Doch was geschieht, wenn der Client-Browser Javascript deaktiviert hat ? Wird die Seite nicht vollständig übertragen, fehlt u.U. das notwendige Stück Javascript-Code im Dokument.

Fehlerhafte Werte in den Datenbanken, die die Eingaben speichern sollen, sind die Folge, oder die Daten werden nicht bzw. fehlerhaft abgelegt.

Frühere Versuche mit der in Perl sehr leistungsstarken Mustererkennung, z.B.

if ($string =~ m/[^0-9-.]/g) {goto fehler};

führten zu folgenden Schwächen, denen man mit Perl nicht so richtig zu Leibe rücken konnte:

  • Es können beliebig viele Kommata, Punkte oder Minuszeichen vorhanden sein.
  • Werden mehrere Kommata oder Punkte eingegeben, wird nur das erste Komma berücksichtigt (Für eine Zahl kleiner 1 und größer 0). Jedes weitere Komma führt zum "Beschneiden" der Zahl. Alle nachfolgenden Ziffern werden nicht berücksichtigt.
  • Das Minuszeichen führt, wenn es nicht an erster Stelle steht, ebenso zum "Beschneiden" der Eingabe.
  • Es wird nicht geprüft, ob das Minus an erster Stelle steht.
  • Es werden meist mehrere Programmzeilen für die sichere Mustererkennung benötigt

Statt dessen kann man den eingegebenen Wert einfach nur mit "1" multiplizieren.

Perl ist sehr leger im Umgang mit seinen Variablentypen. Bei fast allen Programmiersprachen muß man genau definieren, ob es sich um eine Integer-, String- oder Gleitkommazahlvariable handelt. Bei Perl ist dem nicht so - warum sich das nicht zu Nutze machen ? Perl wandelt jede Variable in einen numerischen Wert um, sobald man damit zu multiplizieren versucht. Wird ein Buchstabe statt einer Zahl eingegeben, wandelt Perl diese Eingabe in eine numerisch exakt definierte Null um.


Informationen zu diesem Artikel:

Redakteur: Tino Bellmann
Erstellt: 04.09.2006
Aktuell: 23.07.2008
Ähnliche Themen: perl integer real gleitkomma scriptverarbeitung cgi

Webdesign Linux Fonts
Thickbox Demo
Fancybox Demo
Datepicker Web Kalender Demo
Kostenloses Gästebuch
Your IP
Your Hostname
Unicode-Tabelle
Quittung online
Passwort Generator
Kleinanzeigen
CNC Ansteuerungssoftware für SMC800 und SMC1500
Ökobad Rechenberg
Holzhau Skifasching
Festumzug Rechenberg
Holzhau Dorffest
Holzhau Huskyrennen
Freiberger Eisenbahn
Segelfliegen Oschatz
Zoo Leipzig
Pferdebahn Döbeln
Elbsandsteingebirge
Biathlon
Weisseritztalbahn
Dampflok Videos
Döllnitzbahn
Drachenbootcup
Holzhau Videos