2013-03-21 130 views
1

我創建了非常簡單的郵件表單,並且存在一些問題。至少消息是發送,並有顯示謝謝頁面,但有注意: 未定義的索引:在public_www/n ....中的名稱/ contact-form-handler.php在第14行 另一個錯誤是該名稱不發送。郵件表單不能正常工作

感謝您的任何提示

<form class='contact_form' method="POST" action="contact-form-handler.php" > 
<ul> 
<li> 
<label for="name" >Name:</label> 
<input type="text" id="name" /> 
</li> 
<li> 
<label for="email" id="email">Email:</label> 
<input type="email" name="email" /> 
</li> 
<li> 
<label for="message" id="message">Message:</label> 
<textarea name="message" cols="40" rows="6" required ></textarea> 
</li> 
<li> 
<button class="submit" value="submit">Submit Form</button> 
</li> 
</ul> 
</form> 

和PHP是:

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
$to = "[email protected]"; 
$subject = "Contact"; 
$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 include("contact-form-thank-you.html"); 
    mail($to, $subject, $body); 
} else { 
echo include("contact-form-error.html"); 
} 
?> 
+0

重新格式化你的HTML ....這是你在這可怕的格式! – ITroubs 2013-03-21 16:46:02

+0

請研究'未定義索引'的含義。我還建議您使用現有的庫或類,如[PHPMailer](http://sourceforge.net/projects/phpmailer/)。 – Kermit 2013-03-21 16:46:03

+0

'echo include(...'?that's strange。see http://stackoverflow.com/questions/921479/echo-include-in-php – 2013-03-21 16:48:12

回答

2

YOUT HTML是錯誤的!這應該工作:

<form class='contact_form' method="POST" action="contact-form-handler.php" > 
<ul> 
<li> 
<label for="name" >Name:</label> 
<input type="text" name="name" /> 
</li> 
<li> 
<label for="email" id="email">Email:</label> 
<input type="email" name="email" /> 
</li> 
<li> 
<label for="message" id="message">Message:</label> 
<textarea name="message" cols="40" rows="6" required ></textarea> 
</li> 
<li> 
<button class="submit" value="submit">Submit Form</button> 
</li> 
</ul> 
</form> 

你混了id和你的名字輸入

+0

謝謝,我知道它,它一定是愚蠢的東西,但我是看起來在PHP所有的時間。作品太棒了!謝謝你 – user2195583 2013-03-21 16:53:07

+0

接受答案... – ITroubs 2013-03-21 16:53:31

2

name當你想使用一種形式的重要屬性是「名」來傳遞的東西:

<input type="text" id="name" name="name" /> 

與這應該工作。

id用於引用DOM中的元素,即使用Jquery或javascript時。

name是提交表單時使用的。

+0

我第一次;-) – ITroubs 2013-03-21 16:49:34

+0

你有快速的手指:P! – Naryl 2013-03-21 16:50:57

+0

的確我做.... – ITroubs 2013-03-21 16:51:38

2

您的「姓名」input沒有name屬性。 id屬性本身並不意味着將$_POST數組條目發送到您的腳本。只有inputname屬性中的數據纔會發送到您的PHP腳本,只要它們沒有disabled屬性即可。

1

你忘了添加

name="name" 

<input type="text" id="name" />