我创建了非常简单的消息表单并且存在一些问题。至少发送消息,有显示谢谢页,但是有通知: 未定义的索引:第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" );
}
?>
答案 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>
您混淆了姓名输入的id
和name
答案 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" />