Typ einer Variablen validieren
Ralph
- php
0 Samuel Vogel0 Thomas Luethi0 Tom
0 Ralph
Hallo,
ich uebergebe einige Variablen per URI (also als Typ string), und will sie auf Gueltigkeit ueberpruefen:
so wäre z.B.
index.php?id=1124
gültig, aber
index.php?id=112a
ungueltig.
Wie bekomme ich also zuverlaessig raus, ob die Variable eine Ganzzahl repräsentiert?
Mit Stringkonvertierung erhalte ich bei "112a" als Ergebnis 0, was eine gueltige Zahl waere. Mmmh, ...???
Danke fuer Hilfe,
Ralph
Hallo,
also willst du überprüfen ob die Variable nur ahlen enthält ???
samy,
also willst du überprüfen ob die Variable nur ahlen enthält ???
Ganz genau!
Hello Sammy,
also willst du überprüfen ob die Variable nur ahlen enthält ???
Ich glaube, er wollte überprüfen, ob der Paramter nur Ziffern enthält und genau EINE gültige Zahl ergibt.
Grüße
Tom
Hallo,
Wie bekomme ich also zuverlaessig raus, ob die Variable eine Ganzzahl repräsentiert?
is_int()
Allgemein:
gettype()
bzw.
is_<VARIABLENTYP>()
Lies:
http://www.php.net/manual/de/language.types.php
http://www.php.net/manual/de/function.gettype.php
http://www.php.net/manual/en/function.is-int.php
Gruesse,
Thomas
Hello,
Wie bekomme ich also zuverlaessig raus, ob die Variable eine Ganzzahl repräsentiert?
Das ist gar nicht so ganz einfach bei PHP. Übergeben werden die Parameter alle als Strings. Aber PHP führt eine automatische Typanpassung durch.
Du kannst also zur Kontrolle nur die Funktionen verwenden, die PHP für die logische Überprüfung bereitstellt, nicht die für die deklaratorische Prüfung.
is_int()
gettype()
Diese beiden sind deklaratorisch, also die falsche Wahl.
is_numeric() gehört zu den logischen Überprüfungen. Musst einfach mal alle Funktonen drum herum anschauen, was genau geprüft wird...
Und wichtig: Mach ein paar eigene Versuche. Versuch nicht (nur), ob es klappt, sondern versuch immer, das System doch noch auszutrixen. Denn genau das machen ja Deine Besucher.
Grüße
Tom
Danke Euch allen,
habe die Lösung jetzt unter http://www.php.net/manual/en/function.is-numeric.php gefunden.
if (eregi("[^0-9]", $id)
{
echo "ungueltige Zeichen gefunden";
}
ist genau das, was ich gesucht habe.
Gruss,
Ralph