2011-08-23 145 views
-2

我有这样的代码如何检查是否输入正确的电子邮件地址?

<?php 
if(isset($_POST['submit'])) { 
$to = "[email protected]"; 
$subject = "Form"; 
$name_field = $_POST['name']; 
$email_field = $_POST['email']; 
$message = $_POST['message']; 

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message"; 

echo "<div id='messageok'> Ok. <br /><span> Thank you. </span></div>"; 
mail($to, $subject, $body); 
} else { 
echo "<div id='messageok'> Error. </div>"; 
} 
?> 

,我需要检查,如果在表单中的字段被填充,如果电子邮件地址是正确的。是的,我发现了很多教程,但我并不擅长PHP,并且这些代码对我很有用。谢谢。

+0

What'a一个 “正确” 的电子邮件地址?符合RFC822?一个实际存在? –

+0

您需要从您的代码中删除真实的电子邮件地址。 – Cfreak

+1

正确答案是:不。要么只是假设他们已经给你一个正确的电子邮件地址,或者如果你绝对必须检查它,请通过发送一封电子邮件与验证链接来检查它。适当的电子邮件地址验证是非常棘手的,如果你留下任何漏报的空间(“你是什么意思''”bob + smith 27“@ bob.museum''是一个无效的电子邮件地址??我每天都在使用它! “),那么你将会赶走用户。 – BishopRook

回答

1

有很多方法来检查有效的电子邮件

http://www.google.com/search?q=valid+email+address+php+preg_match

这一个例子

function checkEmail($email) { 
    if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", 
       $email)){ 
    list($username,$domain)=split('@',$email); 
    if(!checkdnsrr($domain,'MX')) { 
     return false; 
    } 
    return true; 
    } 
    return false; 
} 
相关问题