-3

最初は の数ページだけだったお問い合わせフォームを使用していexampleます。ここで、すべてのページにそれを配置する必要があります。フォームは、定義したページからのみ受け入れるように設定されています (これは面倒で、 や などの変数を含める必要がありますexample.com) www.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; }

4

1 に答える 1

0

スパマーからフォームを保護しようとしていると思いますが、HTTP_REFERER はユーザーのブラウザーによって設定され、偽造される可能性があります。フォーラムは、固定アドレスによってスパムから保護されている必要があります。これにより、スパムはあなたにのみ送信されます。それでもやりたい場合は、preg_replaceを使用して http と www を削除し、ルート ドメインが含まれているかどうかを確認します。

于 2009-12-31T18:41:33.387 に答える