我已经尝试了几个PHP联系表单教程,但似乎没有为我工作。我不确定我做错了什么。我在localhost中测试了它,但没有任何结果,所以我继续进行并主持了它,看看它是否可行,但什么都没有。PHP表单加载空白页面,什么都没有发生?
HTML
<form class="form" action="form_process.php" method="post" name="contact_form">
<p class="name">
<label for="name">Name</label><br>
<input type="text" name="name_first" id="name" placeholder="First" />
<input type="text" name="name_second" id="name" placeholder="Last" />
</p>
<p class="email">
<label for="email">Email</label><br>
<input type="text" name="email" id="email" placeholder="[email protected]" />
</p>
<p class="text">
<label for="email">Comments</label><br>
<textarea name="text" placeholder="Write something to us" /></textarea>
</p>
<p class="submit">
<input type="submit" value="Send" />
</p>
</form>
form_process.php
<?php
$name_first = $_POST['name_first'];
$name_second = $_POST['name_second'];
$email = $_POST['email'];
$text = $_POST['text'];
$from = 'From: ';
$to = 'EMAIL HERE';
$subject = 'Hello';
$body = "From: $name_first\n $name_second\n E-Mail: $email\n Message:\n $text";
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
header("Location: index.html");
echo '<p>Your message has been sent!</p>';
exit;
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
}
?>
首先,你有一个名为'name'两个字段(他们应该是一个数组,或有不同的名称),但是这不是你的问题的根源。你有任何错误?你不能像使用它一样使用'header',看看[this SO](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error -in-PHP)。 – Qirel
我怀疑你的'mail()'函数有一些错误的参数,特别是第4个。这是一个“标题”,但你并没有真正指定完整的标题。查看“additional_headers(optional)”下的[PHP'mail()'](http://php.net/manual/en/function.mail.php)。 – Qirel