Автор Тема: только русские тексты на форуме  (Прочитано 266 раз)

0 Пользователей и 1 Гость просматривают эту тему.

clubbend

  • Гость
Достали боты, при этом спамят все исключительно на инязе (а у меня русский форум)!!!
Неужели в SMF до сих пор нет никакой защиты от англо-ботов, ведь это же так очевидно - отсеивать всех тех, кто пишет не по-русски. Очевидно же -СПАМ!!. Подобный плугин давно есть на движке ВордПреСС, не знаю как на других форумах.
 ???
Искал подобный плугин на СМФ - не нашол, может плохо искал!?  :(
Тыкните носом, буду признателен!  :)
 

alfimovmv95

  • Гость
Брат, как я тебя понимаю!
Сам искал подобное несколько раз и безрезультатно  :-[
А потом нашел  :P

 Случайно запись хрен знает какого года  :)) , такой вот код :

function check_russian($t) {
   $ru=array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я','А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ы','Ъ','Э','Ю','Я');
   for($i=0;$i<count($ru);$i++) {
      if(strpos($t,$ru[$i])!==false) {
         return true;
      }
   }
   return false;
}
if(isset($_POST['subject']) && check_russian($_POST['subject'])===false) {
$_POST['subject']='';
$context['post_error']['no_subject'] = true;
}
if(isset($_POST['message']) && check_russian($_POST['message'])===false) {
$_POST['message']='';
$context['post_error']['no_message'] = true;
}

Ставить его в начале файла Sources/Post.php после строки:

Цитировать
    die('Hacking attempt...');

Код этот проверяет наличие русских символов в названии темы и в тексте сообщения.
Если в тексте нет ни одной русской буквы (что и характерно для иностранных ботов), то выдается ошибка, что поле пустое.
Код работает как при создании новой темы, так и при добавлении ответа в старую тему.

ПС. Автор кода предупредил, что у него старая версия SMF (думаю 2.0.х), а  в новых версиях форума надо проверить упоминание в файле  Sources/Post.php переменных $_POST['subject'], $_POST['message'], $context['post_error']['no_subject'], $context['post_error']['no_message'].

Фишка в том, что у меня новейший форум да еще и линейки 2.1.х  :))

И переменные все в файле Sources/Post.php присутствуют, кроме последней.
Но код работает на ура, до сих пор, что очень удвиительно. И главное, никаких ошибок в жарнале нет! Что еще более удивительно! :))
 

Vova12345

  • Гость
нет инязу!
« Ответ #2 : 22 Января 2024, 13:39:37 »
СУПЕР тема, спасибо!!
 

 

В быстром ответе можно использовать BB-теги и смайлы.

Имя: E-mail: