1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
383
383
EMPFEHLEN
-
Hallo,
ich übergebe via url die id durch ?section=lalala&id=1
Aber er sagt mir bei meiner Abfrage:
Er sagt mir wenn ich id=1 übergeben habe ($id enthält wirklich wirklich die 1 hab es schon probiert mit echo $id!) immer, es wäre keine korrekte Zahl. Jemand eine Idee warum? Hab ich einen Denkfehler? Irgendwas am Syntax falsch gemacht? Ich versteh es echt nicht...PHP-Code:if (is_numeric($id) AND is_int($id))
{
do .....
}
else
{
echo "Die eingegebene ID ist keine korrekte Zahl!"
}
Hilfe
-
26.09.09 11:57 #2
Während is_numeric() den Inhalt prüft, ist is_int() eine reine Typprüfung!
Und da PHP so locker im Umgang mit Typen ist, sind so ziemlich alle Daten aus der URI ein String... Und schlagen somit bei der Prüfung fehl.
intval() sollte dir eher helfen.
Alternativ:
Die Ctype Funktionen.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Also da ich erreichen will dass $id eine Zahl sowie eine ganze Zahl ist hatte ich gedacht das wäre okay so?
Die Funktion intval() gibt mir was genau jetzt zurück? Konvertiert Sie strings etc. in Integerzahlen?
Reicht eine Überprüfung mit intval() aus, um mein Vorhaben zu realisieren, oder muss ich is_numeric() trotzdem überprüfen?
Danke nochmal im Voraus und im Nachhinein für die Hilfe!
-
27.09.09 16:04 #4
- Registriert seit
- Jan 2007
- Beiträge
- 258
versuch mal:
PHP-Code:if(ctype_digit($id))
{
echo "alles ok, die ID ist ne Zahl";
}
else
{
echo "Something went wrong. Das ist kein Integer!";
}
-
Als erstes würde ich mit is_numeric überprüfen, ob der String eine Zahl ist, und dann mit intval() einen echten int draus machen.
Erscheint mir wie die einfachste Methode.
-
27.09.09 17:36 #6
Also, meine grundsätzliche Überprüfung, falls ich MySQL IDs prüfen will (auto_increment, also != 0)
Falls auch 0 zugelassen sein soll, ist es ein wenig komplexer, denn intval() gibt bei Fehlschlag 0 zurück. Dann solltest du auf eine intensivere Prüfung mit is_numeric() oder ctype_digit() zurückgreifen.PHP-Code:if(intval($number) > 0)
{
/* Aktion */
}
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Moin,
Code :1
filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT,FILTER_NULL_ON_FAILURE)
...liefert:- false(boolean) , wenn die Variable nicht gesetzt ist
- NULL , wenn die Variable kein Integer ist
- andernfalls die Variable (kann auch 0 sein, also beim prüfen der Fälle 1+2 auch den Typ berücksichtigen)
-
Ähnliche Themen
-
Find den fehler nicht
Von floMatic im Forum PHPAntworten: 7Letzter Beitrag: 31.10.08, 03:03 -
file_get_contents() - ich find den Fehler nicht
Von Eistee im Forum PHPAntworten: 7Letzter Beitrag: 06.06.05, 05:27 -
arrg, ich find den Fehler nicht
Von meilon im Forum PHPAntworten: 2Letzter Beitrag: 22.04.04, 13:40 -
ich find den fehler nicht ;(
Von apex im Forum PHPAntworten: 4Letzter Beitrag: 02.04.03, 20:50 -
*argh* fehler im GB-installscript find aber den fehler nicht
Von Wolf of Doom im Forum PHPAntworten: 5Letzter Beitrag: 06.05.02, 11:54





Zitieren


Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen