我写了下面的联系方式。但它正在发挥作用。请帮帮我....
<?php
if (isset($_POST['submit'])) {
$ToEmail = 'mymail@gmail.com';
$EmailSubject = 'Site contact form ';
$mailheader = "From: " . $_POST["email"] . "'r'n";
$mailheader .= "Reply-To: " . $_POST["email"] . "'r'n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1'r'n";
$MESSAGE_BODY = "Name: " . $_POST["name"] . "<br>";
$MESSAGE_BODY .= "Email: " . $_POST["email"] . "<br>";
$MESSAGE_BODY .= "Comment: " . nl2br($_POST["comment"]) . "<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader)
or die("Failure");
echo "<p>Your message was sent.</p>";
}
?>
<form action="index.php?page=contacts" method="post">
<p>Your name:<br/>
<input name="name" type="text" size="32">
</p>
<p>Email address:<br/>
<input name="email" type="text" size="32">
</p>
<p>Message:<br/>
<textarea name="comment" cols="55" rows="8"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Send">
</p>
</form>
如果你发现任何错误,请让我知道。
如果mail()返回false,那么您的PHP配置不正确。如果您在Windows主机上,您需要在php.ini中定义有效的SMTP
和smtp_port
设置,并且SMTP服务器必须启动并运行。
那,或者你传递了错误的"To:"或其他SMTP服务器直接拒绝的标头值。
您的提交按钮名称为"提交",但您正在检查"提交"。在处理Get/Post变量时,大小写是敏感的。
除此之外,它看起来是可行的。不过,在通过电子邮件发送之前清理数据是个好主意。这样会更好:
<?php
if (isset($_POST['Submit'])) {
$ToEmail = 'sustcorpus@gmail.com';
$EmailSubject = 'Site contact form ';
$mailheader = "From: " . htmlentities(strip_tags(trim($_POST["email"]))) . "'r'n";
$mailheader .= "Reply-To: " . $_POST["email"] . "'r'n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1'r'n";
$MESSAGE_BODY = "Name: " . htmlentities(strip_tags(trim($_POST["name"]))) . "<br>";
$MESSAGE_BODY .= "Email: " . htmlentities(strip_tags(trim($_POST["email"]))) . "<br>";
$MESSAGE_BODY .= "Comment: " . nl2br(htmlentities(strip_tags(trim($_POST["comment"])))) . "<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader)
or die("Failure");
echo "<p>Your message was sent.</p>";
}
?>
<form action="index.php?page=contacts" method="post">
<p>Your name:<br/>
<input name="name" type="text" value="<?php echo $_POST['name']?>" size="32">
</p>
<p>Email address:<br/>
<input name="email" type="text" value="<?php echo $_POST['email']?>" size="32">
</p>
<p>Message:<br/>
<textarea name="comment" cols="55" rows="8"><?php echo $_POST['comment']?></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Send">
</p>
</form>
Php是区分大小写的,更改
if (isset($_POST['submit'])) {
:
if (isset($_POST['Submit'])) {
,因为在你的表单中你已经写了提交按钮的名字: submit