我想在同一页上使用php错误检查来构建窗体。PHP窗体标题位置不工作
除了将访问者重定向到我网站上的另一个页面(thanks.html)之后,所有内容似乎都能正常工作,因为他们填写了正确的表单。首先,将电子邮件发送到我的代码顶部提供的电子邮件地址,然后将访问者重定向到我无法工作的感谢页面。
重定向是这部分在我的代码:
/* Redirect visitor to the thank you page */ header('Location: thanks.html');
下面是我在总:
<?php
/* Set e-mail recipient */
$myemail = "[email protected]";
if (!$_POST['submit'])
{
form();
} else {
if (empty($_POST['name'])) { $error0='<br>name'; }
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email_address'])) { $error2='<br>Valid email address'; }
if (empty($_POST['phonenumber'])) { $error1='<br>phonenumber'; }
if (empty($_POST['comment'])) { $error3='<br>comment'; }
$error_messages = $error0.$error1.$error2.$error3;
if ($error_messages)
{
echo "Please ensure the following fields are completed before submitting your form:<strong>". $error_messages ."</strong><br><br>";
form();
} else {
$name = $_POST['name'];
$email_address = $_POST['email_address'];
$phonenumber = $_POST['phonenumber'];
$comment = $_POST['comment'];
/* Message for the e-mail */
$message = "
New contact request:
Name: $name
Email address: $email_address
Phonenumber: $phonenumber
comment: $comment
";
$subject = "Contact";
$headers = "From: $email_address";
/* Send the message using mail() function */
mail($myemail, $subject, $message, $headers);
/* Redirect visitor to the thank you page */
header('Location: thanks.html');
}}
?>
当检查错误我得到这样的结果:
Warning: Cannot modify header information - headers already sent by (output started at form.php:11).
Form.php:11是这行代码:
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email_address'])) { $error2='<br>Valid email address'; }
所以在查看stackoverflow上的其他帖子后,我猜这个问题可能是空白或头已经发送。但我仍然无法工作。
有人可以帮忙,并给出一个建议来解决这个问题吗?
感谢您的帮助。 我试着添加ob_start();在开头<?php和ob_end_flush()之后的顶部。在底部。 还加入退出;标题重定向之后。我也移动了 $ headers =“From:$ email_address”; 最适合发送联系电子邮件。 但仍然没有运气......非常令人沮丧。 – Chazz