2014-01-24 196 views
1

我的表單不會生成電子郵件,它只是將我重定向到空白頁面。 我在我的服務器上的名爲php的文件夾中有我的.php表單html php發送表單不發送電子郵件

感謝您的幫助。

這裏是我的html代碼

 <form id="form" method="post" action="php/send_form_email.php"> 
     <fieldset> 
     <label><strong>Name:</strong> 
      <input type="text" value=""> 
     </label> 
     <label><strong>Email:</strong> 
      <input type="text" value=""> 
     </label> 
     <label><strong>Phone:</strong> 
      <input type="text" value=""> 
     </label> 
     <label><strong>Message:</strong> 
      <textarea></textarea> 
     </label> 
     <div class="btns"><a href="#" class="link">Clear</a><a href="php/send_form_email.php" class="link">Send</a></div> 
     </fieldset> 
    </form> 

這裏是PHP代碼我使用:

<?php 

if(isset($_POST['email'])) { 



// EDIT THE 2 LINES BELOW AS REQUIRED 

$email_to = "#@#.com"; 

$email_subject = "havok security contact form"; 





    function died($error) { 

    // your error code can go here 

    echo "We are very sorry, but there was an error found with the form you submitted. "; 

    echo "These errors appear below.<br /><br />"; 

    echo $error."<br /><br />"; 

    echo "Please go back and fix these errors.<br /><br />"; 

    die(); 

} 



// validation expected data exists 

if(!isset($_POST['name']) || 

    !isset($_POST['email']) || 

    !isset($_POST['phone']) || 

    !isset($_POST['message'])) { 

    died('We are sorry, but there appears to be a problem with the form you submitted.');  

} 



$first_name = $_POST['name']; // required 

$email_from = $_POST['email']; // required 

$telephone = $_POST['phone']; // not required 

$comments = $_POST['message']; // required 



    $error_message = ""; 

    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 

    if(!preg_match($email_exp,$email_from)) { 

    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 

    } 

    $string_exp = "/^[A-Za-z .'-]+$/"; 

     if(!preg_match($string_exp,$name)) { 

    $error_message .= 'The Name you entered does not appear to be valid.<br />'; 

    } 


    if(strlen($message) < 2) { 

    $error_message .= 'The Message you entered do not appear to be valid.<br />'; 

    } 

if(strlen($error_message) > 0) { 

    died($error_message); 

    } 

$email_message = "Form details below.\n\n"; 



    function clean_string($string) { 

    $bad = array("content-type","bcc:","to:","cc:","href"); 

    return str_replace($bad,"",$string); 

} 



$email_message .= "Name: ".clean_string($first_name)."\n"; 

$email_message .= "Email: ".clean_string($email_from)."\n"; 

$email_message .= "Phone: ".clean_string($telephone)."\n"; 

$email_message .= "Message: ".clean_string($comments)."\n"; 





    // create email headers 

    $headers = 'From: '.$email_from."\r\n". 

    'Reply-To: '.$email_from."\r\n" . 

    'X-Mailer: PHP/' . phpversion(); 

    @mail($email_to, $email_subject, $email_message, $headers); 

    ?> 



    <!-- include your own success html here --> 



    Thank you for contacting us. We will be in touch with you very soon. 



    <?php 

    } 

    ?> 
+0

是'php/send_form_email.php.php'相對於窗體html文件的PHP文件的確切路徑?該文件確實有兩個.php文件,對嗎? – Luceos

+0

是的,我有我的www文件夾中使用webmin的ubuntu服務器我有我的php文件夾php/send_form_email.php是我的php窗體的確切路徑。 對不起,我應該提到,在問題 – HaVoK

+0

哦,我現在看到我複製.php.php的擴展名。我現在覺得自己像個白癡。 imma修復它,並測試它,看看會發生什麼 編輯:我修復了雙擴展,仍然沒有電子郵件,所以我想我在腳本中做了錯誤 – HaVoK

回答

2

下電子郵件輸入類型需要有一個name屬性稱爲「郵件」。你的PHP腳本正在查看是否設置了$ _POST [「email」],而不是。所以,這應該工作:

<form id="form" method="post" action="php/send_form_email.php"> 
     <fieldset> 
     <label><strong>Name:</strong> 
      <input type="text" name="name" value=""> 
     </label> 
     <label><strong>Email:</strong> 
      <input type="text" name="email" value=""> 
     </label> 
     <label><strong>Phone:</strong> 
      <input type="text" name="phone" value=""> 
     </label> 
     <label><strong>Message:</strong> 
      <textarea name = "message"></textarea> 
     </label> 
     <div class="btns"><a href="#" class="link">Clear</a><a href="php/send_form_email.php" class="link">Send</a></div> 
     </fieldset> 
    </form> 
+0

好吧如果我不爲每種輸入類型留下任何價值,這很重要嗎? 即時編輯我的HTML並試一試 – HaVoK

+0

值屬性是文本框的默認值。如果你輸入任何值,它將顯示在文本框中。無論您輸入文本框,都會覆蓋「值」屬性。所以,不,這不重要。 – SyntaxLAMP

+0

好吧,這是我認爲我不知道。所以我編輯了我的html,但仍然沒有收到郵件。是否必須在我的Ubuntu盒子上設置某種郵件服務器來實際生成電子郵件並將其發送到文本框中指定的電子郵件? – HaVoK