2014-02-05 59 views
1
Hello friends, 

    I have a problem regarding email validation. 

    Here is my code:- 
    <?php 
    $email='[email protected]o.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.ab.cd.ef.gh.ij.kl'; 

    $normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$"; 
    $validButRare = "^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})$"; 

    if (eregi($normal, $email)) { 
     echo("The address $email is valid and looks normal."); 
    } 

    else if (eregi($validButRare, $email)) { 
     echo("The address $email looks a bit strange but it is syntactically valid. You might want to check it for typos."); 
    } 

    else { 
     echo("The address $email is not valid."); 
    }   
    ?> 

    problem is this that it is showing above mail id as valid email id. 
    and the output is: 
    "The address [email protected]o.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.ab.cd.ef.gh.ij.kl is valid and looks normal." 

回答

2

更好的方法來檢查域名的存在。
如果域名存在,則電子郵件有效,否則電子郵件無效。

<?php 
if(domain_exists('[email protected]')) { 
    echo('This email can be accepted as valid.'); 
} 
else { 
    echo('Domain name doesnot exists; Invalid email.'); 
} 

function domain_exists($email, $record = 'MX'){ 
    list($user, $domain) = explode('@', $email); 
    return checkdnsrr($domain, $record); 
} 
?> 
1

正常工作試試這個:

$email = '[email protected]o.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.co.in.ab.cd.ef.gh.ij.kl'; 
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL) !== false); 
+0

: - 不工作我的朋友 –

相關問題