[HILFE] Formular eingaben genauer überprüfen

grashnaknieswurz

Grünschnabel
Hallöchen ,

Ich hab da ein kleines Problemchen ...
Ich hab ein Formular das die folgenden Felder enthält :

Einnahme :
Kundenanzahl :
Mitarbeitername :

Ich überprüfe bereits erfolgreich ob die Felder ausgefüllt sind. Möchte aber noch weiter ins Detail gehen.
Einnahme, sollte auf den Typ "double" gecheckt werden.
Kundenzahl auf integer und Mitarbeitername auf Buchstaben.
Kann mir da jemand vielleicht einen Lösungsansatz geben ?
Die Daten kommen aus einem HTML-FORM und werden an PHP übergeben.
In dem HTML Form sind die Typen so wie oben beschrieben eingestellt. ALso Einnahme ist Typ Double ... usw. Die Daten an sich werden später in eine Access Datenbank gespeichert.

Falls ihr noch Infos braucht fragt mich einfach. Ich hab den PHP Code nicht angehangen weil ich gerade überhaupt keine Idee hab wie ich das anstellen soll.. mit "is_int" oder ähnlichem hab ich das schon versucht ...

Gruß
Grashnak
 
Also ... hab nochmal mit gettype geguckt was denn letztendlich für Daten rauskommen. Alle Felder sind Strings, obwohl im HTML-Form anders angegeben sind.

Kann mir jemand sagen ob ich die Strings auf bestimmte Zeichen limitieren kann ?
Ich stelle mir das so vor ...
Kundenzahl dar nur eine nummer sein ... 1,2, 3 ... also keine Buchstaben oder sonderzeichen, sollte diese drin sein kann ich mit einer If-Abfrage eine Fehlermeldung ausspucken ...
bzw. bei mitarbeitername nur buchstaben und leerzeichen und einnahme nur zahlen und "." Punkt.

Danke soweit für die Antworten ...

Grashnak
 
also mal ein Beispiel ...
PHP:
$teilnehmer = $_POST["teilnehmer"];
$check_teilnehmer = gettype($teilnehmer);
ECHO "$check_teilnehmer";
Das Ergebnis ist "string". schreibt er jedenfalls auf den Bildschirm.

Wenn ich jetzt folgendes machen würde :
PHP:
IF (is_numeric($teilnehmer))
    { 
    Echo "ja";
    }
    ELSE 
    { 
    ECHO "nein";
    }
würde er mir immer nein ausspucken, oder nicht ?
 
Nein würde er nicht (sonst würde ja diese Funktion gar keinen Sinn machen)...

Diese Funktion fragt nicht den Datentyp sondern den Inhalt der Variable ab, und der Inhalt kann auch in einem String nummerisch sein (nummerisch = nur Zahlen)
 
@aquasonic
So wie ich es im Beispiel anwende ist aber doch richtig oder ?
Ich dachte mir das die Funktion so funktioniert wie du es schilderst, aber wenn ich die Funktion teste zeigt sie nur True an, wenn ich sie vorher per Settype auf Integer setze ansonsten immer false bzw. gettype spuckt immer "String" aus oder nach der Settype-Geschichte halt "Integer" ...

Oder gibt es in der PHP.ini irgendwelche Einstellungen die ich vornehmen muss damit der Inhalt der Variable geprüft werden kann ... ich bin ratlos ...

Es scheint an der übergabe aus dem HTML-Form zu liegen. Wenn ich die Variable über $teilnehmer = 1 festlege spuckt er mir in der Tat "Integer" aus ...
 
Zuletzt bearbeitet:
du kannst es mit regular expressions überprüfen (siehe Tim Commans Tutorial dazu).
Zudem kannst du Variablen aber auch casten zu einem bestimmten Typ, z.B. so

PHP:
 $string = "bla";
 $my_int = (int) $string;
 var_dump($my_int);

das eigentlich "casten" (auch typecast genannt) passiert hiermit: (int) bzw (DATENTYP).
 
ja wäre an sich schon richtig...Probier mal ob du es so machen kannst wie es dir Ben Ben erklärt hat...Es könnte sein dass es was mit dem übergeben im Formular zu tun hat, da hast du recht... :)
 
Zurück