2017-09-05 116 views
-1

試圖通過我的網站的聯繫表單發送郵件導致一個空白頁面(沒有確認信息),並且沒有發送電子郵件。PHP聯繫表格不發送郵件,結果爲空白頁

該窗體的HTML是:

<form method="post" action="index.php"> 
    <div class="field half first"> 
     <label for="name">Name</label> 
     <input type="text" name="name" id="name" /> 
    </div> 
    <div class="field half"> 
     <label for="email">Email</label> 
     <input type="text" name="email" id="email" /> 
    </div> 
    <div class="field"> 
     <label for="message">Message</label> 
     <textarea name="message" id="message" rows="4"></textarea> 
    </div> 
    <ul class="actions"> 
     <li><input type="submit" value="Send Message" class="special" /></li> 
     <li><input type="reset" value="Reset" /></li> 
    </ul> 
</form> 

index.php文件是:

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $from = 'From: SiteContactForm'; 
    $to = '[email protected]'; 
    $subject = 'Hello'; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

if (isset($_POST['submit'])) { 
    if (mail ($to, $subject, $body, $from)) { 
     echo '<p>Your email has been sent.</p>'; 
    } else { 
     echo '<p>Something broke.</p>'; 
    } 
} 
?> 

,這兒任何錯誤,將是造成東西斷了? 'to'電子郵件是我真實的電子郵件,只是在這裏進行了編輯。

+3

送你不必與屬性的元素'name =「submit」',所以它永遠不會觸發 – Qirel

+1

'

  • '爲'
  • ' – clearshot66

    回答

    0

    試試這個方法,你需要命名提交

    <form method="post" action="index.php"> 
        <div class="field half first"> 
         <label for="name">Name</label> 
         <input type="text" name="name" id="name" /> 
        </div> 
        <div class="field half"> 
         <label for="email">Email</label> 
         <input type="text" name="email" id="email" /> 
        </div> 
        <div class="field"> 
         <label for="message">Message</label> 
         <textarea name="message" id="message" rows="4"></textarea> 
        </div> 
        <ul class="actions"> 
         <li><input type="submit" name="submit" value="Send Message" class="special" /></li> 
         <li><input type="reset" value="Reset" /></li> 
        </ul> 
    </form> 
    

    否則if (isset($_POST['submit']))不會做任何事情,因爲它尋找「提交」設置/通過

    +0

    謝謝你和Qirel,挺我的一個疏忽。現在工作正常,謝謝! – Edge