On 10/7/09 6:04 AM, "Ashley Sheridan" <[email protected]> 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