私はこのトピックについて提案されたすべての投稿を調べてきましたが、私にとってうまくいくか、私が完全に理解している解決策を見つけることができないようです。
隠しフィールドがボットによって埋められているかどうかをチェックし、埋められている場合はフォームを壊す単純なハニーポットを実行しようとしています。私の問題は、PHP値がクリアされたかどうかを確認するためにAJAXを使用することになると思われます。私はコーディング言語に精通していないので、それが理にかなっていることを願っています。
私の当初のアイデアは、フィールドに入力するボットの送信ボタンを無効にすることでした。ただし、フィールドが空白であるため、フォームに送信ボタンが読み込まれ、ポイントが失われます。
これは、ボットのフォームチェックの一部です。
<!-- THE HONEYPOT -->
<li id="artificial-detect">
<label for="artificials">If you see this, leave this form
field blank and invest in CSS support.</label>
<input name="artificials" type="text" value="">
</li>
<!-- /HONEYPOT -->
<?php
$spam = $_POST['artificials']; // This is our Honeypot field
if($spam) { // If the Honeypot field has been filled in
die("No spamming allowed bitch!");
} else { ?>
<li class="last">
<input class="submit" type="submit" name="submit">
</li>
<?php } ?>
私は今何をすべきかわかりません:
jQuery.('#salesforce-crm-form .submit').click(function(){
jQuery.ajax({
// Get PHP function that determines whether the honeypot has been snatched.
});
});
action = ""に外部URLを使用しているので、PHPがボットをクリーンアップして返した場合にのみ挿入できるのではないかと思いました。