Autor Zpráva
Seki
Profil
user243
Profil
tohle bude možná trochu mimo, omlouvám se...

takže když já vím, že přes get/post dostávám číslo v desítkové soustavě, ale nějaký všetečka by mi tam přidal písmeno nebo to úplně nahradil nějakým textem, tak mám použít něco takového?
(strval(intval($_GET["plat"])) === $_GET["plat"]);
vrana.cz
DJ Miky
Profil
user243:
mám použít něco takového?
(strval(intval($_GET["plat"])) === $_GET["plat"])

Záleží, jak se chceš v takovém případě zachovat. Tato podmínka jen ověří, zda se v proměnné $_GET['plat'] nachází celé číslo bez jiných znaků. Poté v závislostí na výsledku se můžeš zachovat několika způsoby - buď prostě použít číslo, které z toho vyjde pomocí intval(), nebo uživatele upozornit na neplatný formát apod. Záleží na konkrétním případu, kdy je jaká varianta vhodnější (přívětivější pro uživatele).
user243
Profil
mně se jedná o stránkování, kde používám toto:
 if ($strana < 1 || $strana > $pocet_stran) $strana=1;
funguje to dobře, ale nejsem si jistý, jestli je to nejlepší postup, protože při:
$strana = "20a" se mi zobrazí strana 20, podobně u $strana = "2a0" se zobrazí strana 2;
$strana = "a20" se mi zobrazí strana 1;
$strana = "20.6" se mi zobrazí strana 1;

měla by podmínka vypadat spíš nějak takto?
if (!strval(intval($strana)) === $strana || $strana < 1 || $strana > $pocet_stran)
   $strana = 1;
1Pupik1989
Profil
nebo is_numeric vrátí true, pokud je hodnota číslo. Tuším je i is_int.
Jan Tvrdík
Profil
user243:
Ta podmínka od Jakuby Vrány v pořádku. Spolehlivě ověří, že $_GET["plat"] je řetězec obsahující celé číslo.

1Pupik1989:
is_numeric je hodně benevolentní. Akceptuje i čísla jako "1.78e-23".
is_int je naproti tomu velmi striktní, protože neakceptuje čísla ve formě řetězce ("579").
ctype_digit je velmi dobrá funkce, která spolehlivě ověří, zda řetězec je celé nezáporné číslo.

rozhodit do dvou vláken?
Moderátor Joker: Učinil jsem a odmazal přivolávač moderátorů

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0