2016-08-30 37 views
0

我在我的網站上工作時遇到了一些困難。每當我嘗試提交時,它都會打開index.php,一個空白頁面,而不是實際執行腳本併發送電子郵件。努力使聯繫表單工作(HTML5/PHP)

下面是表格。

<form method="post" action="index.php"> 
     <div class="field"> 
      <label for="name">Name</label> 
      <input type="text" name="name" id="name" /> 
     </div> 
     <div class="field"> 
      <label for="email">Email</label> 
      <input type="email" 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" type="submit" value="Send Message" /></li> 
     </ul> 
    </form> 

這是我正在使用的index.php文件。

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

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

if ($_POST['submit']) { 
    if (mail ($to, $subject, $body, $from)) { 
    echo '<p>Your message has been sent!</p>'; 
    } else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
    } 
} 
?> 

PHP貌似是正確我的服務器上安裝了,我可以用一個PHPInfo()文件沒有問題。

+0

在輸入HTML中,您有type =「submit」兩次。第二個應該是name =「submit」。這樣你就沒有$ _POST ['submit']設置,並且永遠不會進入狀態。 – Dexa

+0

謝謝,解決了這個問題,現在我正在找一個地方。不幸的是,我每次都收到「出錯了,請回去再試一次」,所以我一定在其他地方犯了一個錯誤。 – Edge

回答

0

電子郵件永遠不會嘗試發送,因爲$_POST['submit']未設置。您的表單上沒有名爲submit的控件。如果你打算成爲提交按鈕,你需要給它一個name屬性。

<input type="submit" name="submit" value="Send Message" /> 

然後,在你的PHP腳本,檢查提交isset而不是僅僅評估它作爲一個布爾值。

if (isset($_POST['submit'])) { ... 

這樣,如果表單尚未提交,您將不會收到未定義的索引通知。

+0

哦,很好看。我將'type =「submit」'更改爲'name =「submit」',表單現在運行,但每次都失敗。認爲還有其他問題。 – Edge

+0

你的意思是,你得到'出錯了'的信息? –

+0

是的,我現在試着測試這個表單。它確實運行得益於先前的修復,但是現在我收到了「出錯了」的消息。 – Edge