消息表单不起作用

时间:2013-03-21 16:44:20

标签: php html forms

我创建了非常简单的消息表单并且存在一些问题。至少发送消息,有显示谢谢页,但是有通知: 未定义的索引:第14行的public_www / n .... / contact-form-handler.php中的名称  另一个错误是名称不发送。

感谢任何提示

<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 = "test@test.com";
$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" );
}
 ?>

4 个答案:

答案 0 :(得分: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>

您混淆了姓名输入的idname

答案 1 :(得分:2)

如果您想使用表单传递内容,则重要属性为“name”:

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

有了它,它应该有用。

id用于引用DOM中的元素,即使用Jquery或javascript时。

name是提交表单时使用的。{/ p>

答案 2 :(得分:2)

您的“姓名”input没有name属性。 id属性本身并不意味着将$_POST数组条目发送到您的脚本。只有具有input属性的name s中的数据才会发送到您的PHP脚本,只要它们没有disabled属性。

答案 3 :(得分:1)

您忘了添加

name="name"

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