1

クライアントがメールで空白のフォームを受信する際に問題が発生します。

私は次のフォームを使用しています

 <form method="get" action="javascript:contactForm()" class="form">
            <div class="alertForm"><!-- Error's go in here --></div>
            <div class="innerForm">
                <div class="placeholder">Your Name</div>
              <input type="text" name="name" value="" id="name" placeholder="">
                <div class="placeholder">Your Phone Number</div>
              <input type="text" name="number" value="" id="number" placeholder="">
              <select name="time" id="time">
                <option value="null">Please Select A Time</option>
                <option value="09:00 - 11:00">09:00 - 11:00</option>
                <option value="11:00 - 13:00">11:00 - 13:00</option>
                <option value="13:00 - 15:00">13:00 - 15:00</option>
                <option value="15:00 - 17:00">15:00 - 17:00</option>
                <option value="17:00 - 19:00">17:00 - 19:00</option>
              </select>
              <input type="submit" value="Call Me Back">
            </div>
          </form>

そしてPHPの投稿

     $name = $_POST['name']; $number = $_POST['number']; $time = $_POST['time'];
     $subject = "[CALLBACK] ".$name." - ".$number;
     $to = "clown@thecircus.co.uk";
     $headers = "From:" . "website@thecircus.co.uk";
     $message = $name." would like you to call them back on ".$number." between ".$time;

     if(mail($to, $subject, $message, $headers)){ echo "We will call you within the time       you've selected. If not today, then the next day.<br><br>Thank you."; }
     else{ echo "Something's gone horribly wrong! PANIC."; }

私がそれを試してみると、うまくいくようですが、1日に約7通の空白の電子メールを受信して​​います。これらがスパムなのか、実際に連絡フォームなのかわかりませんが、データが失われていますか?

どんな助けでも大歓迎です。

4

1 に答える 1

2

フォームmethodは に設定されていますが、PHP の変数にgetアクセスしようとしています。$_POSTフォームを切り替えるか、代わりにmethod="post"使用します(ただし、POST を使用することをお勧めします)。$_GET$_POST

ただし、サーバー側の検証もフォームに追加する必要があります。少なくとも、フォーム フィールドに何かが入力されていることを確認してください。

于 2012-05-05T10:12:03.743 に答える