php 联系表格有问题..是我的代码还是我的服务器设置?
Problems With php contact form..is it my code or my server settings?
iv 一直在尝试构建一个 php 联系表,但没有得到预期的结果,谁能告诉我以下代码是否可以在服务器上运行,或者它的代码是否出错?
contact.php
<form name="contact" action="contactMail.php" method="POST" enctype="multipart/form-data">
<table id="contactTable">
<tr>
<td id="contactTable"><label for="name">Name</label></td>
<td><input name="name" id="name" type="text" size="30" required="required" /></td>
</tr>
<tr>
<td id="contactTable">Subject</td>
<td><input name="subject" id="subject" type="text" size="30" required="required" ></td
></tr>
<tr>
<td id="contactTable"><label for="email">Email</label></td>
<td><input name="email" id="email" type="email" size="40" required="required" ></td>
</tr>
<tr>
<td id="contactTable" valign="top"><label for="message">Message</label></td>
<td><textarea id="message" name="message" required="required" ></textarea ></tr>
</table>
<div align="center">
<input id="blueButton" type="reset" value="Clear All">
<input id="blueButton" type="submit" value="Send Message">
</div>
</form>
contactMail.php
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "example@hotmail.co.uk";
$subject = $_POST['subject'];
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
header ("refresh:2;url=contact.php");
?>
这取决于很多事情 - 首先,您没有说明您的 "desired result" 是什么,也没有解释正在发生的事情。
但是,我的假设是您想要:
1/ 要发送的电子邮件
2/ 要显示给用户的消息"Thank you!"
3/ 2 秒后,用户被重定向到一个新页面:
因此,您的主要问题是您的 header - 您无法在将输出发送到浏览器后发送 header(echo() 所做的),因此您的 header() 不会被发送。
因此,您需要换行:
header ("refresh:2;url=contact.php");
echo "Thank You!";
我认为您需要从电子邮件中提供或作为域电子邮件提供给电子邮件。
示例:如果 'xxx.com' 则 'xxx' 是您的域名,因此您的域电子邮件类似于 demo@xxx.com
iv 一直在尝试构建一个 php 联系表,但没有得到预期的结果,谁能告诉我以下代码是否可以在服务器上运行,或者它的代码是否出错?
contact.php
<form name="contact" action="contactMail.php" method="POST" enctype="multipart/form-data">
<table id="contactTable">
<tr>
<td id="contactTable"><label for="name">Name</label></td>
<td><input name="name" id="name" type="text" size="30" required="required" /></td>
</tr>
<tr>
<td id="contactTable">Subject</td>
<td><input name="subject" id="subject" type="text" size="30" required="required" ></td
></tr>
<tr>
<td id="contactTable"><label for="email">Email</label></td>
<td><input name="email" id="email" type="email" size="40" required="required" ></td>
</tr>
<tr>
<td id="contactTable" valign="top"><label for="message">Message</label></td>
<td><textarea id="message" name="message" required="required" ></textarea ></tr>
</table>
<div align="center">
<input id="blueButton" type="reset" value="Clear All">
<input id="blueButton" type="submit" value="Send Message">
</div>
</form>
contactMail.php
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "example@hotmail.co.uk";
$subject = $_POST['subject'];
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
header ("refresh:2;url=contact.php");
?>
这取决于很多事情 - 首先,您没有说明您的 "desired result" 是什么,也没有解释正在发生的事情。
但是,我的假设是您想要: 1/ 要发送的电子邮件 2/ 要显示给用户的消息"Thank you!" 3/ 2 秒后,用户被重定向到一个新页面:
因此,您的主要问题是您的 header - 您无法在将输出发送到浏览器后发送 header(echo() 所做的),因此您的 header() 不会被发送。
因此,您需要换行:
header ("refresh:2;url=contact.php");
echo "Thank You!";
我认为您需要从电子邮件中提供或作为域电子邮件提供给电子邮件。 示例:如果 'xxx.com' 则 'xxx' 是您的域名,因此您的域电子邮件类似于 demo@xxx.com