21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Zaciatocnik
Profil *
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
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 *
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
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.

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