网站广泛的联系表格

时间:2009-12-31 17:06:41

标签: php forms contact

我使用的联系表单最初只在example的几页上。现在我们需要在所有页面上都有它。 表单设置为仅接受您定义的任何页面(这将是乏味的,并且必须包含example.comwww.example.com等变量

有没有办法从网站的所有页面定义除外提交和别名? 希望这是有道理的。不懂代码。 在此先感谢您的帮助!

$replyemail="example@imieducation.com"; //change to your email address
$valid_ref1="http://www.example.com/index.htm"; //change to your domain name
$valid_ref2="http://www.example.com/index.html"; //change to your domain name
$valid_ref3="http://www.example.com/"; //change to your domain name
$valid_ref4="http://example.com/";
$valid_ref5="http://myaliassite.com/";
$valid_ref6="http://www.myaliassite.com/";
$valid_ref7="http://myaliassite.com/index.html";

// -------- No changes required below here -------------------------------------------------------------
// email variable not set - load $valid_ref1 page
if (!isset($_POST['email']))
{
 echo "";
 exit;
}
$ref_page=$_SERVER["HTTP_REFERER"];
$valid_referrer=0;
if($ref_page==$valid_ref1) $valid_referrer=1;
elseif($ref_page==$valid_ref2) $valid_referrer=1;
elseif($ref_page==$valid_ref3) $valid_referrer=1;
elseif($ref_page==$valid_ref4) $valid_referrer=1;
elseif($ref_page==$valid_ref5) $valid_referrer=1;
elseif($ref_page==$valid_ref6) $valid_referrer=1;
elseif($ref_page==$valid_ref7) $valid_referrer=1;
if((!$valid_referrer) OR ($_POST["block_spam_bots"]!=12))//if change this change it in the contact form too
{
 echo 'ERROR - not sent. Click here to go back';
 echo '

Referrer: ' . $ref_page; exit; }

1 个答案:

答案 0 :(得分:0)

我猜您正在尝试保护您的表单免受垃圾邮件发送者的攻击,但HTTP_REFERER是由用户浏览器设置的,可以伪造。应通过固定地址保护论坛免受垃圾邮件侵扰,以便他们只能向您发送垃圾邮件。如果您仍想这样做,可以使用preg_replace删除http和www,然后检查其中是否包含您的根域。