Quantcast
Channel: IT блог » Drupal
Viewing all articles
Browse latest Browse all 7

Drupal 7: спам по количеству ссылок, bbCode и отсутствию кириллицы

$
0
0

Тема борьбы со спамом во всех его проявлениях сейчас актуальна, как никогда ранее. Ниже мы с вами коснемся аспекта защиты от спама касаемо сайтов, работающих на Drupal 7.

Примечания к использованию. ModuleName — имя конкретно создаваемого вами модуля.

Дополнительное замечание. Этот код является «жестким», т.е. в нём отсутвует реализация какой-бы то ни было страницы настроек в админке системы. Потому он представлен только для ознакомления и последующей более детальной доработки до готового решения.

<?php
function ModuleName_form_alter(&$form, &$form_state, $form_id)
{
   if (strpos($form_id, 'comment_node_')!==false) // Небольшой трюк, чтобы срабатывало на всех формах комментирования.
     $form['#validate'][] = 'ModuleName_validation';
}

function ModuleName_validation($form, &$form_state)
{
   $text = $form_state['input']['comment_body']['und'][0]['value'];
   if (substr_count($text, '</a>') >=3 or // По наличию закрывающего тега </a>. Если встречается более чем 2 раза.
     strpos($text, '[/url]')!==false or // По наличию bbCode ссылки.
      !preg_match("/[а-яА-я]/", $text)) { // По полному отсутвию букв русского алфавита.
      form_set_error('comment_body', 'Ваше сообщение возможно содержит спам, потому не игнорируйте кириллицу и не пытайтесь разместить здесь лишние ссылки.');
   }
}
?>

Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles





Latest Images