2009-04-25 4 views
2

私のサイトには、電子メールを送信する次のコードがあります。PHPとcaptchaを使用して迷惑メールを減らすベストプラクティスは何ですか?

if($_SESSION["captcha"]==$_POST["captcha"]) 
{ 

$msg="Require Services :\t$_POST[service]\n"; 
$msg="Name :\t$_POST[name]\n"; 
$msg.="Company Name :\t$_POST[co_name]\n"; 
$msg.="Address :\t$_POST[address]\n"; 
$msg.="Mobile :\t$_POST[mobile]\n"; 
$msg.="Phone :\t$_POST[phone]\n"; 
$msg.="E-mail :\t$_POST[email]\n"; 
$msg.="Message :\t$_POST[message]\n"; 

$subject=$_POST[subject]; 
$to="[email protected],[email protected]"; 
$headers="From: $_POST[email] < $_POST[email]> \n"; 
$headers .= "Reply-To: $_POST[email]\n\n"; 

mail($to,$subject,$msg,$headers);} 

?> 

迷惑メールを減らすためにcaptchaを使用した後でも、私はまだ多くの迷惑メールを取得します。

+1

ちょうどあなたのようにあなたの電子メールアドレスを投稿すると、さらに多くの迷惑メールが届くでしょう...:P –

答えて

1

これが問題の原因であるかどうかはわかりませんが、そのファイルに$_SESSION["captcha"]の設定を解除して、電子メールごとにキャプチャを1回入力する必要があります。今のように、フォームを提出してからリフレッシュして、非常に素早くたくさんの電子メールを送信することができます。

+0

ありがとうございます!私はそれについて気にしていません。今私は試してみる –

2

それは、「空白のままにしてください」CSSを使用し、それを隠して、そのフィールドが記入されている場合のポストを無視し、このような何かラベル、新しい入力フィールドを追加します。

<style type='text/css'> 
#other_email_label, #other_email { 
    display: none; 
} 
</style> 
... 
<form action='mail'> 
<label id='other_email_label' for='other_email'>Please leave blank:</label> 
<input type='text' name='other_email' id='other_email'> 
... 
</form> 

だから、人間が勝っされていますそのフィールドは表示されません(CSSがオフになっている場合を除き、ラベルが表示されて空白のままになります)が、スパムロボットがそのフィールドに入力します。

+0

魅力的なテクニック。 +1は創造性です。 – zombat

関連する問題