Php czy liczba?

Jak sprawdzić czy otrzymany przez $_GET parametr to liczba całkowita, czy też inny ciąg znaków??

sprawdzałem if(is_int($id)) {…}

oczywiscie w $id mam dane z GETa ale to chyba to nie to bo mi nie chodzi.

w jakim sensie nie chodzi? zawartość if powinna się wykonać tylko gdy $id jest zmienną typu integer, co przekazujesz do skryptu przez GET i jaki efekt uzyskujesz? a jaki chciałbyś uzyskać?

Mu chyba chodzi o $_GET czyli np http://www.cos.pl?zmienna=12345

Musze sprawdzić typ zmiennej otrzymanej przez GETa.

Dokładniej rozróżnić takie przypadki:

Sprawdzałem tak

ale niezaleznie od tego co podam w parametrze to zawsze mam wynik negatywny czyli info że to tekst a nie liczba.

Jak więc to poprawnie sprawdzić?

sprawdzasz nie tę zmienną, a właściwie sprawdzasz coś co zawsze będzie stringiem, bo htmlspecialchars() zwraca stringa, sprawdzaj w if nie $id a $_GET[‘id’]

Chyba nie do końca tak jest bo i bez htmlspecialchars nie działa a nawet po wywaleniu całego przypisania i wstawieniu samego geta do is_int!

Czyli dla

dalej to samo!

Może ktoś się już spotkał z tym problemem i wie jak go rozwiązać?

Sprawdź co wyświetla var_dump()

http://pl2.php.net/manual/pl/function.var-dump.php

hm, w zasadzie tutaj jest odpowiedź: manual

no dobra to by wyjaśniało dlaczego tak sie dzieje

Ale w takim razie jak rozwiązać mój problem rozpoznawania czy to liczba?

$id = (string)(int) $_GET['id'];

$comp = strcmp( $id , $_GET['id'] );

if($comp){

echo 'wartości nie są równe więc $_GET['id'] jest stringiem';

}

else{

echo 'wartości są równe więc $_GET['id'] jest int';

}

nie sprawdzałem tego, ale może się tak zdarzyć, że będzie działać, może jest też jakiś inny sposób, to pierwsze co mi przyszło do głowy

Poczytaj sobie komentarze http://pl.php.net/manual/pl/function.is-numeric.php

Jest tam mnóstwo przykładów jak sobie z tym poradzić.

Lisek, jesteś wielki!!

Działa jak ta lala :smiley: