Űrlapból érkező szám ellenőrzése
Fiúk, van-e arra függvény, hogy egy form-ból jövő adatot leellenőrizzem, hogy szám-e vagy betű-e? Mert nem találtam ilyet.
Példa: bekérem az ember magasságát, mert számolni akarok vele. Ha betűt ír, akkor nem jó.
Szóval kipróbáltam egy olyat, hogy:
$mag=settype($mag,"integer");
de ez mindig 1-et ad a $mag értékének...
Mi a megoldás?
■ Példa: bekérem az ember magasságát, mert számolni akarok vele. Ha betűt ír, akkor nem jó.
Szóval kipróbáltam egy olyat, hogy:
$mag=settype($mag,"integer");
de ez mindig 1-et ad a $mag értékének...
Mi a megoldás?
is_int
http://hu2.php.net/manual/hu/function.is-int.php
Esetleg:
http://hu2.php.net/manual/hu/function.is-numeric.php
Meg gettype() is
http://hu.php.net/manual/hu/function.gettype.php
Biztos?
mégtovább...
Ez ugye lebegőpontos, ezért próbáltam a fent leírt módon egész számmá alakítani, de az volt a gond, hogy mindig 1-es értéket adott bármilyen számnak.
Van ebben valami hiba: $mag=settype($mag,"integer");
Kösz
szvsz ez lesz a te barátod
üdv t
hopp visszavontam, csak a témanyitó hozzászólást néztem, az is_numeric lesz jó nálad
mégtovább...
http://hu.php.net/manual/hu/function.settype.php
Itt észreveszi, hogy a settype parancs boolean visszatérési értékkel bír,
bool settype ( mixed &var, string type )
ami azt jelenti, hogy ha sikeres a változó típusának beállítása, akkor 1, he nem, akkor 0. Aztán továbbolvas, és észreveszi a példákat is:
Nahát, akkor a php-nek kár
Köszönöm az eddigieket, de további gondjaim is vannak...
- van egy ilyen írásom:
<?php
$mag=$_POST['mag'];
print "Megjött az adat: ".$mag."<br><br>";
//megvizsgálom:
print "Az adat típusa: ".gettype($mag)."<br><br>";
print "<b>Azt vizsgálom, szám-e vagy betű:</b><br>";
if (is_numeric("$mag")== TRUE){
print "__________ez egy szám<br><br>";
} else {
print "__________ez nem szám<br><br>";
}
print "<b>Azt vizsgálom, egész szám-e:</b><br>";
if (is_int("$mag")== TRUE){
print "__________ez egész szám<br><br>";
} else {
print "__________ez nem egész szám<br><br>";
}
?>
A gond a gettype-nál van, ha egész számot írok be, akkor is string-et ír.
Ezt hol rontom el?
String típus
Összetettebb ellenőrzésekre általában a preg_match a legjobb választás, de a fenti kódod is jó, ha ennyi elég.
Mindenesetre kicsit tömörebben így nézhet ki (azért írom, mert talán ellesel belőle pár trükköt):
(Úgyhogy remélem, sehol nem rontottam el, mert már ki sem látok a fejemből.)
ctype_digit(), a te barátod :)
http://hu.php.net/manual/hu/function.ctype-digit.php
A függvény igazat ad vissza, ha a változóban csak számok vannak, és hamisat, ha nem csak számok. :)
ellenörzés
http://hu2.php.net/manual/hu/function.ereg.php
Legyen inkább preg_match
ha nem megy
Érdemes megtanulni
Szerintem klasszikusan az a terület, amihez megközelítés kell, nem PHP-s gyakorlat.
Köszönök mindent