Re: FILTER_VALIDATE_INT - newbie question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/7/09 6:04 AM, "Ashley Sheridan" <ash@xxxxxxxxxxxxxxxxxxxx> wrote:

> 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.

isn't a numeric string starting with 0 taken as octal? if so then 8 and 9
might cause validation errors.


> 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.

right. phone numbers are not integers. people also often use parentheses,
hyphens or dots in them.



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux