tomekpl
14.08.2008, 18:07:23
Witam,
mam problem z formatowaniem wartości wysłanych za pomocą get z adresu do strony.
Mam adres: index.php?page=karty&kat=konstrukcje&id=1&szt=1
gdzie szt=1 to liczna sztuk.
i jak ktoś wpisze szt=alfabet, html, <script> itp..
to w polu które odczytuje liczbę sztuk jest to co wpisał.
Jak narazie mam tyle:
$szt = trim(HTMLSpecialChars($_GET['szt']));
ale to nie pomaga, ponieważ przepuszcza literki, a chciałbym zeby tylko same cyfry bez żadnych innych znaków.
----------------
Tak teraz wpadłem na pomysł zeby napisać warunek, jezeli szt nie jest rowne 1 or 2 or 3 to nie przepuszczaj, ale to chyba zły pomysł...
Czekam na pomoc.
Ar2r
14.08.2008, 18:17:04
Użyj do weryfikacji tego pola funkcji is_int
manual
starach
14.08.2008, 18:58:31
is_int nie bo sprawdza ona typ zmiennej a wszytko z tablicy superglobalnej $_GET jest łańcuchem.
Do sprawdzania używaj is_numeric(). Możesz również rzutować typ. Poszukaj w manualu PHP tam masz to dokładnie omówione.
delfinium
14.08.2008, 20:07:09
Wstaw
<?php
$szt = (int)$_GET['szt'];
?>
i w $szt będziesz miał liczbę, jeśli w $_GET['szt'] będzie coś innego niż liczba to dostaniesz 0.
webdice
14.08.2008, 21:59:31
Crossposting, temat oczywiście zamykam, a autora ostrzegam że następnym razem uhonoruje go ostrzeżeniem.