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.
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ć?
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ć?
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