我已经和他一起工作了几天,并且通过许多以前提出过的问题以及几个教程网站阅读了......联系表格提交,确认和重定向......它发送电子邮件,包含 Headers 和主题行,纠正地址...只是没有输入...没有“来自发送电子邮件”,没有来自姓名输入,没有电子邮件输入,没有消息输入......帮助!如此接近,但到目前为止...任何建议都非常感谢〜我写了HTML和CSS,新手在JS,几乎没有PHP经验...提前谢谢你! :)
这是HTML联系表单:
<form action= "contact-form.php" id="contact-form" method="post">
<fieldset>
<label><input name="cf-name" type="text" value="Your Name" onBlur="if(this.value=='') this.value='Your Name'" onFocus="if(this.value =='Your Name' ) this.value=''" /></label>
<label>
<input name="cf-email" type="text" value="Email" onBlur="if(this.value=='') this.value='Email'" onFocus="if(this.value =='Email' ) this.value=''" />
</label>
<textarea name="cf-message" onBlur="if(this.value=='') this.value='Message'" onFocus="if(this.value =='Message' ) this.value=''">Message</textarea>
<div class="buttons">
<p><a href="#" onClick="document.getElementById('contact-form').reset()">Clear</a>
<a href="#" onClick="document.getElementById('contact-form').submit()">Send</a></p>
<p>
</p>
</div>
</fieldset>
</form>
这是PHP(contact-form.php):
<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$mail_to = 'info@anelectrician.net';
$subject = 'Message from a website visitor...'.$field_name;
$body_message = 'From:'.$field_name."\n";
$body_message .= 'E-mail:'.$field_email."\n";
$body_message .= 'Message:'.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for your correspondence. We will contact you shortly.');
window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to info@anelectrician.net');
window.location = 'contact.html';
</script>
<?php
}
?>
4 回答
你似乎在这里有所不同......在PHP中你使用下划线,在HTML中你使用破折号 .
您可以通过调试来测试出错的地方和代码的位置:
这应该可以帮助您弄清楚您是否只是使用了正确的密钥 .
改变这些
对这些
$ _POST中的项目需要与输入的名称属性匹配 . 您的输入有破折号,但$ _POST引用有下划线 . 例如:
<input name="cf-name" ... >
应为<input name="cf_name" ...>
当您的PHP名称输入具有下划线时,您的html输入有破折号