Hallo,
Ich habe mir die Funktion "ereg" ausgesucht, um Benutzereingaben auf folgendes zu überprufen:
Wer weiß, wie ich das Suchpattern schreiben muss, dass die Bedingungen 100% passen.
Warum machen das "is_int" und "is_numeric" eigentlich nicht? Eine von den beiden Funktionen müsste false zurückgeben, lassen aber Buchstaben durch.
Ich habe mir die Funktion "ereg" ausgesucht, um Benutzereingaben auf folgendes zu überprufen:
- nur positive Zahlen (muss!), also keine negativen Zahlen
- Punkt als Dezimaltrenner (optional: entweder gar nicht oder nur einmal vorkommen)
- keine Null (0) (Eingabe darf nicht einfach nur 0 sein)
- dementsprechend keine anderen Sonderzeichen oder Buchstaben
PHP:
function param($name) {
$var = preg_replace(',','.',$_POST[$name]);
if(!empty($var)) {
if(!is_numeric($var)) return false;
if(!is_int($var)) return false;
#if(!ereg('/[(\d.)]*/',$var)) return false; # funktioniert aber nicht wirklich
if($var == 0 or $var < 0) return false; # keine Null oder negative Zahlen
return true;
}
return true;
}
Wer weiß, wie ich das Suchpattern schreiben muss, dass die Bedingungen 100% passen.
Warum machen das "is_int" und "is_numeric" eigentlich nicht? Eine von den beiden Funktionen müsste false zurückgeben, lassen aber Buchstaben durch.