Закрываемся от спамеров с помощью стоп слов

Я уже приводил несколько вариантов как уменьшить количество комментариев оставленных спамерами, причём я искал такие способы при которых комментарии не помечаются как спам, а вообще никак не попадают в базу (уже есть на блоге о нерусских комментариях и проверка на отсутствие рефера)

Вот например способ закрыть свои комменты по стоп словам (этот код нужно добавить в файл вашей темы functions.php):

function in_comment_post_like($string, $array) {
    foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
    return false;
}
function drop_bad_comments() {
    if (!empty($_POST['comment'])) {
        $post_comment_content = $_POST['comment'];
        $lower_case_comment = strtolower($_POST['comment']);
        $bad_comment_content = array(
            'viagra',
            '[url=http',
            '[link=http'
        );
        if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
            $comment_box_text = wordwrap(trim($post_comment_content), 80, "\n  ", true);
            $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
            fwrite($txtdrop, "  --------------\n  [COMMENT] = " . $post_comment_content . "\n  --------------\n");
            fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n");
            fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n");
            fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "\n");
            fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n");
            fwrite($txtdrop, '--------------**********------------------'."\n");
            header("HTTP/1.1 406 Not Acceptable");
            header("Status: 406 Not Acceptable");
            header("Connection: Close");
            wp_die( __('Ваш комментарий не добавлен так как вы использовали стоп слова которые употребляют большинство спамеров.<br />Попробуйте сообщить мне вашу мысль другими словами') );
        }
    }
}
add_action('init', 'drop_bad_comments');

Стоп слова вписываются в:

            'viagra',
            '[url=http',
            '[link=http'

в таком же формате и насобирать вы их можете из своих спамных комментариев (можно писать как латиницу, так и кириллицу).

Кстати кто только собрался сдавать на права то есть отличные уроки вождения Киев — уверен что вы сдадите без проблем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *