联系我们邮件错误

时间:2013-05-14 09:28:25

标签: php contact-form

我的html编码为联系表单html页面,下面是php代码

<form name="form1" method="post" action="contact.php" id="contactform">
                                <table width="100%" border="0" cellspacing="1" cellpadding="3">
                                    <tr>
                                        <td><input name="name" type="text" id="name" ONFOCUS="clearDefault(this)" value="Name" size="90" style="background: #DAEDFF; border:1px solid #DAEDFF; border-radius:3px; height: 25px;"></td>
                                    </tr>
                                    <tr>
                                        <td><input name="customer_mail" type="text" value="Email" ONFOCUS="clearDefault(this)" id="customer_mail" size="90" style="background: #DAEDFF; border:1px solid #DAEDFF; border-radius:3px; height: 25px;"></td>
                                    </tr>
                                    <tr>
                                        <td width="82%"><input name="subject" type="text" value="Subject" ONFOCUS="clearDefault(this)" id="subject" size="90" style="background: #DAEDFF; border:1px solid #DAEDFF; border-radius:3px; height: 25px;"></td>
                                    </tr>
                                    <tr>
                                        <td><textarea name="detail" cols="90" rows="8" id="detail" style="background: #DAEDFF; border:1px solid #DAEDFF; border-radius:3px;"></textarea></td>
                                    </tr>
                                    <tr>
                                        <td style="padding-left: 530px;"><input type="submit" name="Submit" value="Send" style="background: #1B99E8; border: 1px solid #1B99E8; color: #ffffff; border-radius:3px;"></td>
                                    </tr>
                            </table>
                        </form>

contact.php文件

<?php

$subject        =   $_POST['subject'];
$detail         =   $_POST['detail'];
$customer_mail  =   $_POST['customer_mail'];
$name           =   $_POST['name'];

// Contact subject
$subject ="$subject"; 

// Details
$message="$detail";

// Mail of sender
$mail_from="$customer_mail"; 

// From 
$header="from: $name <$mail_from>";

// Enter your email address
$to ='it@reverseinformatics.com';
$send_contact=mail($to,$subject,$message,$header);

// Check, if message sent to your email 
// display message "We've recived your information"
if($send_contact){
echo '<script language="javascript">confirm("We have received your request, our team will contact you shortly.")</script>';
echo '<script language="javascript">window.location = "contact.html"</script>';
}
else {
echo '<script language="javascript">confirm("Oops Sorry for the inconvinience.")</script>';
echo '<script language="javascript">window.location = "contact.html"</script>';
}
?>

以上是我的代码PLZ帮助我克服我的问题,因为我在网站上托管,它在我的本地服务器上运行良好但不在网站上工作

2 个答案:

答案 0 :(得分:0)

我猜您的代码存在问题 window.location =“contact.html”部分。 如果您想重定向到此页面,请尝试提供绝对路径。 您也可以尝试 window.location.href window.open 。 请注意, window.open将在新窗口中打开它。

答案 1 :(得分:0)

许多人对“联系我们”表单也有一个非常常见的错误。

// Mail of sender
$mail_from="$customer_mail"; 

这将破坏SPF并导致DMARC失败,如果您使用的邮件服务器上启用了DMARC,您将永远不会收到某些人的消息。

由于DMARC是一个更新的协议,很多旧的cookie切割代码用于联系我们表格 - 不考虑这一点。

您可以在此处详细了解:"DMARC - Contact Form Nightmare"

建议的解决方法是:

$mail_from='it@reverseinformatics.com';
$subject ="$subject" .  $_POST['customer_mail']; 

这样 - 您可以避免文章中的问题大纲。您将无法快速点击“回复”按钮,但至少您将收到启用了DMARC的客户的电子邮件。