| Autor | Zpráva | ||
|---|---|---|---|
| Zaciatocnik Profil * |
#1 · Zasláno: 1. 1. 2010, 12:02:13
Dobry den, riesim nasledujucu vec - do formulara sa zada text a odosle (malo by to byt cislo) - osetrujem nejprv cez regularne vyrazy ci sa retazac sklada len z cislic 0-9, kde ano tak by som chcel osetrit rozsah. Najjednoduhsie by to bolo pretypovanim premennej na int a naslednym testovanim rozsahu. Ma to ale jeden hacik, a to ked je cislo v retazci mimo rozsah integeru. V tom pripade mi funkcia settype bezproblemov vrati 1, ale vysledne cislo v premennej je pretecene. V inych prostrediach by som pri spravnom nastaveni kompilatora dostal nieco typu OutOfRangeException, v PHP som myslel ze navratova hodnota funkcie settype bude zavisla na uspesnosti operaci. Tu nenachadzam ziadne elegantne riesenie preto vas ziadam o radu.
Ako poslednu moznost by som volil osetrovanie rozshau pomocov regularnych vyrazov, to mi pride pri cislach typu 2 147 483 647 uz dost pracne. Samozrejme v pripade ze ocakavam vstup vacsi ako je najvacsia celociselna premenna v PHP tak to bude asi jedina moznost, ale to terasz nie je moj pripad. Dakujem za kazdy napad a prajem vam stastny novy rok. :-) |
||
| Shadowek Profil |
#2 · Zasláno: 1. 1. 2010, 12:14:48 · Upravil/a: Shadowek
Moc jsem tě nepochopil ale jestli je to číslo můžeš ověřit funkcí is_numeric ( to bude možná lepší ) ale nepochopil jsem jak chceš omezit ten rozsah ale ... nemůžeš to dát do podmínky jako jesli $_POST['neco'] < Nejvyšší číslo && $_POST['neco'] > Nejnižší číslo?
|
||
| Zaciatocnik Profil * |
#3 · Zasláno: 1. 1. 2010, 12:40:03
nemůžeš to dát do podmínky jako jesli $_POST['neco'] < Nejvyšší číslo && $_POST['neco'] > Nejnižší číslo?
No to je zaujimave ono to funguje :) Aspon sa zda. Este pred tym musim tie posty samozrejme osetrit tym regularnym vyrazom aby tam boli len cislice a v tom pripade sa zda ze to funguje dobre :) Co to robi ked tam su aj ine znaky neviem ale s cislami to funguje. Ake jednoduche PHP :) Dakujem. |
||
| fuckin Profil |
#4 · Zasláno: 1. 1. 2010, 17:01:45
Zaciatocnik:
„dostal nieco typu OutOfRangeException“ PHP také dokáže pracovat s vyjímkama, viz http://php.net/manual/en/language.exceptions.php ,sice ne s takovými možnostmi jak třeba C#, ale dokáže a je vhodné je umět použít. |
||
|
Časová prodleva: 16 let
|
|||
0