【发布时间】:2014-03-29 00:12:59
【问题描述】:
我正在为一个在单击提交时执行 PHP 代码文件的站点开发 HTML 联系表单。我遇到的问题是 PHP 脚本显示“消息发送失败”。我以前在另一个站点中使用过这个确切的 PHP 文件,所以问题可能出在 HTML 页面上。请提供任何建议。
HTML - contact.html(不包括标题)
<body>
<header>
<img src="images/Banner" />
</header>
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="badges.html">Badges</a></li>
<li><a href="news.html">News</a></li>
<li><a href="calendar.html">Calendar</a></li>
<li><a href="gallery.html">Gallery</a></li>
<li><a href="bio.html">Bio</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
<article>
<div id="pagebanner"><div id="bannertext"><!-- InstanceBeginEditable name="Page Banner" -- >CONTACT ME<!-- InstanceEndEditable --></div></div><!-- InstanceBeginEditable name="Page Content" -- >
<div id="pageintro">If you need to contact me, please use one of the following ways.</div>
<div class="bodytextbold" style="text-align: left;">EMAIL</div>
<div class="bodytext" style="text-align: left;">Please complete the following form and click Submit to send me a message.</div><form id="contactform" method="post" action="contact.php">
<p>
<label for="textfield">Name:</label>
<input name="name" type="text" id="name" size="35">
<label for="textfield2"> </label>
<label for="email">Email:</label>
<input name="email" type="text" id="email" size="25">
<label for="textfield2"><br>
Subject:</label>
<input type="text" name="subject" id="subject">
</p>
<p>
<label for="textarea">Message:</label></p>
<p>
<textarea name="message" cols="75" rows="15" id="message"></textarea>
</p>
<p>
<input type="submit" name="submit" id="submit" value="Submit">
<input type="reset" name="reset" id="reset" value="Clear">
</p>
</form>
<div class="bodytext">THANK YOU FOR YOUR MESSAGE. YOU WILL RECEIVE A RESPONSE SOON!</div>
<div class="bodytextbold" style="text-align: left;">PHONE</div>
<div class="bodytext" style="text-align: left;">You may call me at <span style="font-weight: bold";>(number)</span> any time between 5 PM and 9 PM.</div>
<!-- InstanceEndEditable -->
</article>
<footer>
<div style="margin: 0 0 15px 0;"><a href="index.html">Home</a> | <a href="badges.html">Badges</a> | <a href="news.html">News</a> | <a href="gallery.html">Gallery</a> | <a href="bio.html">Bio</a> | <a href="contact.html">Contact</a></div>
Copyright © 2014 Paradimensional Entertainment
</footer>
</body>
<!-- InstanceEnd --></html>
PHP -contact.php
<body>
<?php
$to = "someone@email.com";
$subject = $_REQUEST['subject'] ;
$name= $_REQUEST['name'] ;
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "From: $name, $email" ;
$sent = mail($to, $subject, $message, $headers) ;
if($sent) {
echo ('Your message was successfully sent.');}
else {
echo ('Your message failed to send. Please try again.');}
?>
【问题讨论】:
-
确保您的服务器安装了邮件服务器。没有那个你不能使用
mail()函数。 -
我很确定他们会这样做。我以前使用过同一台服务器,没有任何问题。
-
可能是服务器配置问题。如果 mail() 返回 false,则意味着 PHP 无法发送邮件,但如果您收到该错误,则表单可能工作正常。添加 var_dump($_REQUEST);看到数据正确地到达 PHP,但我看不出有任何原因。
-
只需执行
mail('youremail@domain.com', 'test', 'test');并查看它是否发送。如果是,则删除$headers并使用您的代码再次发送。如果这行得通,那么你知道这是你的标题。如果没有,则mail()不起作用。也可能是您的$_REQUEST中的错误数据。var_dump()就像 Lenny 说的...