On Wed, 2009-10-07 at 10:57 +0100, MEM wrote: > Hello all, > > > I'm having this strange behavior, and I do not understanding why... > > When I use FILTER_VALIDATE_INT I'm unable to get, on my input box, values > starting with 0(zero), or values that are greater (in length) then 10 > digits. > > I was expecting to be able to input the all range of integers. > > > I've tried this: > > if (!filter_var($telefone, FILTER_VALIDATE_INT)) > { > $erros['telefone'] = 'Invalid Teléfono - Only Numbers Allowed.'; > } > > And this: > if (!filter_var($telefone, FILTER_VALIDATE_INT, array("options" => > array("min_range"=>-1, "max_range"=>9999999999999)))) > { > $erros['telefone'] = 'Invalid Teléfono - Only Numbers Allowed.'; > } > > And this: > if (filter_var($telefone, FILTER_VALIDATE_INT, array("options" => > array("min_range"=>0, "max_range"=>99999999999999999))) == false ) > { > $erros['telefone'] = 'Invalid Teléfono - Only Numbers Allowed.'; > } > > No success. :s > > What am I not getting? > > > Thanks, > Márcio > > > Ps- Anyone knows where can we grab a good source information about > FILTER_VALIDATE_INT specifically? > > Well, at a guess, if a number is 0, PHP see's that as equivalent to a false. Also, numbers over 10 digits may be going over the limit for your PHP install, assuming PHP actually attempts to convert the string to a real integer for the purpose of the filter. For things this simple, I've always tended to go with something like this: if(!preg_match('^[0-9 \+]$', $telefone)) { $erros['telefone'] = 'Invalid Teléfono - Only Numbers Allowed.'; } Which will check for all common types of phone numbers, including those where the user has put spaces in to separate groups of digits, and those that contain the + for country codes. Thanks, Ash http://www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php