2011-08-23 144 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; 
} 
相關問題