0

私の連絡先ページは次のようになります

<?php
      include 'header.php';
     foreach($_POST as $key => $value) {
$posts[$key] = filter($value);
                               }

            if(isset($posts['name'])) {
            if($posts['name'] == ""){
            $error = "Please enter your real name!";
            }else if(!isEmail($posts['email'])){
            $error = "Please enter a valid email address!";
            }else if($_POST['message'] == ""){
            $error = "Please enter your message!";
            }else{
            $subject ="Contact";
            $message="{$_POST['message']}";
            $header="From: {$posts['name']} <{$posts['email']}>";
            $to = $site->site_email;
            $send_contact=mail($to,$subject,$message,$header);
            $success = "Message Sent!";
            }
             }
                 ?>
                      <div class="contentbox">
                      <div class="head">Contact</div>

そして、こうやってスパマーをブロックしたい……。

1 時間に 1 つのメールしか送信できません。このcontact.phpページから

これを手伝って、この同じコードを送ってください。ただし、時間ブロック コードなどで編集してください。

ありがとう

4

2 に答える 2

2

送信者の IP アドレスとメッセージが送信された時刻を保存します。別のメッセージが送信されたら、同じ IP アドレスを見つけて時間を比較します。1時間未満の場合は、エラーを出して後で送信してください。

于 2012-12-13T03:58:59.920 に答える
0
<?php
foreach ($_POST as $key => $value) {
    $posts[$key] = filter($value);
}

if (isset($posts['name'])) {
    if(!empty($_COOKIE["megablocker"])){
        $error = "You can only send one message per hour!";
    }else if ($posts['name'] == "") {
        $error = "Please enter your real name!";
    } else if (!isEmail($posts['email'])) {
        $error = "Please enter a valid email address!";
    } else if ($_POST['message'] == "") {
        $error = "Please enter your message!";
    } else {
        $subject = "Contact";
        $message = "{$_POST['message']}";
        $header = "From: {$posts['name']} <{$posts['email']}>";
        $to = $site -> site_email;
        $send_contact = mail($to, $subject, $message, $header);
        $success = "Message Sent!";
        setcookie("megablocker", 1, strtotime('+1 hour'));
    }
}

include 'header.php';
?>
于 2012-12-13T04:19:19.087 に答える