Re: Issue with filter_var and FILTER_VALIDATE_EMAIL
| From: | Shawn McKenzie | Date: | Fri, 19 Jun 2009 15:46:08 +0000 |
| Subject: | Re: Issue with filter_var and FILTER_VALIDATE_EMAIL | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294336@lists.php.net to get a copy of this message | ||
Bastien Koert wrote:
> On Fri, Jun 19, 2009 at 11:20 AM, Jonathan Tapicer<tapicer@gmail.com> wrote:
>> Did you execute the code I sent? Does it give you a false?
>>
>> Jonathan
>>
>> On Fri, Jun 19, 2009 at 12:17 PM, Bastien Koert<phpster@gmail.com> wrote:
>>> Correct, I send the @
>>>
>>>
>>> Bastien
>>>
>>> On Friday, June 19, 2009, Jonathan Tapicer <tapicer@gmail.com> wrote:
>>>> Works for me:
>>>>
>>>> var_dump(filter_var('bastien_k(a)hotmail.com
>>>> <http://hotmail.com>',
>>>> FILTER_VALIDATE_EMAIL) !== false); //replace (a) with @
>>>>
>>>> Gives:
>>>>
>>>> bool(true)
>>>>
>>>> You are sending an @ instead of " at ", right?
>>>>
>>>> Jonathan
>>>>
>>>>
>>>> On Fri, Jun 19, 2009 at 11:49 AM, Bastien Koert<phpster@gmail.com> wrote:
>>>>> Hey guys,
>>>>>
>>>>> Running the new version of PHPMailer and my hotmail address fails the
>>>>> validation.
>>>>>
>>>>> Email address is bastien_k at hotmail dot com
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> --
>>>>>
>>>>> Bastien
>>>>>
>>>>> Cat, the other other white meat
>>>>>
>>>>> --
>>>>> PHP General Mailing List (http://www.php.net/)
>>>>> To unsubscribe, visit:
>>>>> http://www.php.net/unsub.php
>>>>>
>>>>>
>>> --
>>>
>>> Bastien
>>>
>>> Cat, the other other white meat
>>>
>
> this is the relevant function from phpmailer
> public static function ValidateAddress($address) {
> if (function_exists('filter_var')) { //Introduced in PHP 5.2
> if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
> return false;
> } else {
> return true;
> }
> } else {
> return
> preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\
\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/',
> $address);
> }
>
> }
>
>
>
Is your PHP version >= 5.2? If not then the regex will return 1, so in
your code don't check for === true. Try == true if that's what you're
doing.
--
Thanks!
-Shawn
http://www.spidean.com