1

我创建了非常简单的消息表单,但存在一些问题。至少发送消息并显示感谢页面,但在第 14 行有 Notice: Undefined index: name in public_www/n..../contact-form-handler.php 和另一个错误是 name is not发送。

感谢您的任何提示

<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

4 回答 4

2

你的 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名字输入

于 2013-03-21T16:48:18.233 回答
2

当您想使用表单传递某些内容时,重要的属性是“名称”:

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

有了这个它应该工作。

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

name是提交表单时使用的。

于 2013-03-21T16:48:56.360 回答
2

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

于 2013-03-21T16:50:07.423 回答
1

你忘了添加

name="name"

里面

<input type="text"  id="name" />
于 2013-03-21T16:50:52.077 回答