2

私のサイトには、電子メールを送信するための次のコードがあります。

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="info@sriramtrade.com,rajm_123@rediffmail.com";
$headers="From: $_POST[email] < $_POST[email]> \n";
$headers .= "Reply-To: $_POST[email]\n\n";

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

?>

キャプチャを使用して迷惑メールを減らした後でも、まだ大量の迷惑メールが届きます。

4

2 に答える 2

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 がオフになっている場合を除き、ラベルが表示されて空白のままになります)、スパム ロボットが入力します。そのフィールドが入力された投稿は、スパムロボット。

于 2009-04-25T08:26:36.343 に答える
1

これが問題の原因かどうかはわかりませんが$_SESSION["captcha"]、そのファイルの設定を解除して、ユーザーが電子メールごとに 1 回キャプチャを入力する必要があるようにする必要があります。今では、フォームを送信した後に更新を押して、必要な数の電子メールを非常に迅速に送信できます。

于 2009-04-25T06:25:38.317 に答える