Skip to main content

php filter_var email error


i use he filter_var php function to validate email address when a user sign up to my site



so i use this code form the post:




$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);



then later i do:




if(!$email) {
// return to the form
}
else {
// send registration info
}



now when i var_dump($email)



output:




string(23) "user."name"@example.com"



i would like to know why this not return false, i think the double quotes are not acceptable why PHP say it's valid?


Source: Tips4allCCNA FINAL EXAM

Comments

  1. It is a valid email address :


    A quoted string may exist as a dot separated entity within the
    local-part or it may exist when the outermost quotes are the outermost
    chars of the local-part (e.g. abc."defghi".xyz@example.com or
    "abcdefghixyz"@example.com are allowed. abc"defghi"xyz@example.com is
    not; neither is abc\"def\"ghi@example.com). Quoted strings and
    characters however, are not commonly used. RFC 5321 also warns that "a
    host that expects to receive mail SHOULD avoid defining mailboxes
    where the Local-part requires (or uses) the Quoted-string form" (sic).

    ReplyDelete
  2. I had the same problem (see ladaraider on why it's valid) and here's how I fixed it:

    filter_var($email, FILTER_SANITIZE_EMAIL);


    eg:

    $email = 'user."name"@example.com';
    $email = filter_var($email, FILTER_SANITIZE_EMAIL);


    will output:

    string(21) "user.name@example.com"


    Then you can validate the email using your validation.

    you can get more information on the php site

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?