2011-08-04 36 views
0

的查詢所以我最近做了一個家庭成員小公司的基本網站。我包括郵件的形式,查詢等有關PHP郵件()'問題'

這裏是我使用的代碼:

<?php 

function check_input($data){   // SANITIZE USER STRING INPUT 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

$name = check_input($_POST['name']); 
$surname = check_input($_POST['surname']); 
$email = check_input($_POST['email']); 
$telephone = check_input($_POST['telephone']); 
$comments = check_input($_POST['message']); 


$message = "From: $name $surname 
Email: $email 
Telephone: $telephone 
-------------------------------------------------------------- 
Comments: $comments 
"; 

mail("#######@#####.com","Website Enquiry from www.#######.co.uk",$message,"From: webserver"); 

?> 

現在當我嘗試它,它的工作原理absoloutely罰款。不過,我注意到有時它真的很慢,所以我們一直通過表單收到空白的電子郵件(用戶輸入數據不存在),所以它似乎有人試圖使用它,並可能因爲它耗時過長?

我假設這是與郵件服務器而不是PHP郵件。但我想看看是否有人能夠強調我可以爲託管給她的公司帶來的潛在問題?

千恩萬謝,

回答

0

其實你不檢查,如果有人填寫表格空的,這就是爲什麼你得到空白字段

<?php 

    function check_input($data){   // SANITIZE USER STRING INPUT 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 

    if(!empty($data)) 
    { 
     $name = check_input($_POST['name']); 
     $surname = check_input($_POST['surname']); 
     $email = check_input($_POST['email']); 
     $telephone = check_input($_POST['telephone']); 
     $comments = check_input($_POST['message']); 


     $message = "From: $name $surname 
     Email: $email 
     Telephone: $telephone 
     -------------------------------------------------------------- 
     Comments: $comments 
     "; 

     mail("#######@#####.com","Website Enquiry from www.#######.co.uk",$message,"From: webserver"); 
    } 

    ?> 
+0

對不起,我沒有剛纔的答覆,已經離開。我正在使用jquery有效性插件來確保輸入所有字段,這是不夠的嗎? – buymypies

1

檢查如果輸入的姓名和電子郵件字段,然後用郵件功能進行..這減少了空白的電子郵件。

<?php 


    if (isset($_POST['name']) && isset($_POST['email'])) //check if name and email fields are entered and then proceed with mail function 
    { 
     //process the data and send mail. 
    } 
    else 
    { 
    echo "Error missing name or email field.please enter"; 
    } 
?> 

另外,您還可以使用array_key_exists()

<?php 


     if (array_key_exists("name", $_POST) && $_POST["name"] != "" && array_key_exists("email", $_POST) && $_POST["email"] != "") 
//check if name and email fields are entered and then proceed with mail function 
     { 
      //process the data and send mail. 
     } 
     else 
     { 
     echo "Error missing name or email field.please enter"; 
     } 
    ?>