freecodesnippet.com
Этот метод основывается на том, что спам-боты, как правило, настолько тупы, что позорят своих дедушек (разработчиков).
Идея
Для тех, кто еще не в курсе, имеем следующее:
1. Добавьте к своей форме поле для ввода с каким-нибудь интересным именем, например ‘URL’.
<input NAME=”url” TYPE=”text” />
2. Спрячьте это поле при помощи CSS, чтобы (настоящие) пользователи не могли увидеть его напрямую.
<style>
.style1 {
display: none;
}
</style>
<p CLASS=”style1″><input NAME=”url” TYPE=”text” /></p>
3. При обработке формы, проверяйте, содержит ли ‘URL’ какое-либо значение. Если это так, значит удалите этот пост, либо отложите его для модерации.
if (strlen(trim($_POST['url'])) > 0){
//It is a spam, reject this post here
}
4. Не поняли? Почему это работает? А работает это просто потому, что настоящие пользователи не видят спрятанное поле и не заполняют его, в то время как боты и видят, и заполняют.
WordPress
У меня были проблемы со спамом на этом сайте, но с тех пор как я применил эту хитрость, спама пока не было. Я вставил код в форму комментариев (wp-comments-post.php):
if (strlen(trim($_POST['url'])) > 0){
do_action(‘comment_closed’, $comment_post_ID);
wp_die( __(‘Sorry, comments are closed for this item.’) );
}
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['plugin9']);
$comment_content = trim($_POST['comment']);