Jump to content
php.lv forumi

nepareizi mainigo tipi


Blitz

Recommended Posts

Es ievacu no POST vertibu! Vertiba ir integer tipa (1,2,3,4,5,6..).

Pec tam vinu izlaizu cauri:

$string-POST['string']
$string=trim($string);
$string=strip_tags($string);
$string=addslashes($string);
echo "$string";

ok, redzu ka vertiba ir 1.

pec tam taisu parbaudi is_integer($string) un atkriez man false, kautgan vertiba ir integer tipa,

var_dump atgriez ka vertiba ir char(1).

Jautajums: Kapec php automatiksi nepieskir mainiga tipu, tb integer? Kas varetu but pa problemu?

izmeginaju ari $string2=$string; bet taa pat $string2 paliek char(1)...

Kas par problemam?

Link to comment
Share on other sites

nee nu es jau input lauka visadus brinumus varu sarakstit!

Tur jau taa lieta, ja es ierakstu "aa" tad vinu man pataisis pa integeru $x = (int)POST['x'];

un izstures is_integer parabudi...

Link to comment
Share on other sites

vēl var šitā

if(intval($string) == $string) {/* ir ok */} else {/* nav ok*/}

 

un par preg_match tulīt no bubu dabūsi par lielgabaliem un zvirbuļiem!

 

kautkas pret Preg_match ? ja nepatiik preg_match tad var str_match :)

Link to comment
Share on other sites

Kā vienmēr RFTM:

http://lv.php.net/ctype_digit

http://lv.php.net/is_int

 

S_integer($x) pārbauda vai $x tips ir integers, bet nevis vai tā vērtība var tikt pārvērsta uz integeru.

 

Ja tu gribi pārbaudīt vai $x ir integers/floats, vai arī strings, kuru var pārvēst uz integeru/floats, tad tev jālieto is_numeric fja.

 

A ja vajag pārbaudīt vai strings satur tikai ciparus, tad jālieto ctype_digit($x) fja.

 

A tas, kurš pregus ieteica - ja tev vajag zvirbuļus nomedīt, tad arī talkā ņemsi lielgabalu?

Link to comment
Share on other sites

×
×
  • Create New...