Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Фильр цензуры

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
StasHappy
Отправлено: 02 Октября, 2013 - 15:27:17
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Добрый день.

Хочу реализовать на сайте фильтр цензуры. И даже скорее не фильтр а условие. Скажем, если в строке имеются бранные слова, то выводим ошибку. В интернете искал решения, ничего хорошего не нашёл. Предлагают регулярки. Я попробовал парочку. Вроде и работают они, но многие слова пропускает. Незнаю как решить подобную задачу. Склоняюсь к использованию Базы данных со списком запрещенных слов и полнотекстового поиска по ним. Что посоветуете, как быть? Делаю фильтр для русского мата и английских ругательств.
 
 Top
IllusionMH
Отправлено: 02 Октября, 2013 - 15:32:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




StasHappy, в_с_е_г_д_а__н_а_й_д_е_т_с_я__в_ а_р_и_а_н_т__к_о_т_о_р_ы_й__о_б_ о_й_д_е_т__ф_и_л_ь_т_р.
Модерация и вараинт бана или запрета на отправку следующих сообщений при появлении жалобы на мат.
 
 Top
StasHappy
Отправлено: 02 Октября, 2013 - 15:36:06
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Цитата:
в_с_е_г_д_а__н_а_й_д_е_т_с_я__в_ а_р_и_а_н_т__к_о_т_о_р_ы_й__о_б_ о_й_д_е_т__ф_и_л_ь_т_р.

С помощью регулярки, можно очистить строку от символов и оставить только буквы и цифры. А далее проверить на цензуру. Это не проблема. Но как лучше реализовать сам механизм? С помощью БД или как нибудь проще можно.

(Отредактировано автором: 02 Октября, 2013 - 15:36:24)

 
 Top
esterio
Отправлено: 02 Октября, 2013 - 15:39:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




StasHappy
Бросьте ето дело. Иначе пользователи будут страдать, а хулиганы все равно найдут обход

(Отредактировано автором: 02 Октября, 2013 - 18:05:05)

 
 Top
IllusionMH
Отправлено: 02 Октября, 2013 - 15:42:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




StasHappy, да сколько матофильтров не ставили, все равно будут проблемы если употреблять подобные(см. слева) слова. upd. Плохо обоработает эту строку, придется еще и весь словарь цензурных слов держать.
Так что если и делать, то
IllusionMH пишет:
Модерация ... жалобы на мат.

(Отредактировано автором: 02 Октября, 2013 - 15:47:10)

 
 Top
StasHappy
Отправлено: 02 Октября, 2013 - 15:44:13
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Цитата:
Бросьте ето дело. Иначе пользователи будут страдать, а метрщики все равно найдут обход

Бросить не могу. Работаю над серьёзным проектом. Вы лучше посоветуйте мне решение данной задачи.Улыбка Есть какой либо вариант, наиболее лучший чем использование БД с полнотекстовым поиском?
(Добавление)
Цитата:
Модерация ... жалобы на мат.

Сервис, над которым я работаю, не занимаетс предварительной модерацией пользователиских сообщений. Пользователей много и сообщений много. За каждым не уследишь.
 
 Top
EuGen Администратор
Отправлено: 02 Октября, 2013 - 15:56:38
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Решения не существует.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
StasHappy
Отправлено: 02 Октября, 2013 - 16:10:58
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Цитата:
Решения не существует.

Значит оно ещё просто не найдено.
 
 Top
Ch_chov
Отправлено: 02 Октября, 2013 - 16:20:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




А ещё можно смешивать русские и латинские символы.
 
 Top
IllusionMH
Отправлено: 02 Октября, 2013 - 16:29:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Ch_chov, а еще можно использовать ASCII "картинки".

Тут поможет только эвристический алгоритм, который скопирован с мозга водопроводчика, сапожника, прапорщика и т.д.
Как делать плохое(матерится) так смекалка сразу включится.
Попробуйте реализовать свой вариант и посмотреть нагрузку и отношение правильных к неправильным срабатываниям.
Статистика покажет что при большой затрате ресурсов на написание и работу алгоритма, эффективность будет низкой.
Так что система тикетов — и все кому не нравятся мат имеют шансы "повлиять" на наказание виновных.

(Отредактировано автором: 02 Октября, 2013 - 16:34:30)

 
 Top
Zuldek
Отправлено: 02 Октября, 2013 - 16:34:29
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




жалоба+бан учетки
автоматическая деактивация сообщения при определенном числе жалоб.

(Отредактировано автором: 02 Октября, 2013 - 16:35:01)

 
 Top
Ch_chov
Отправлено: 02 Октября, 2013 - 16:37:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Вообще таких фильтров на php куча в сети. Можете по гуглить. Про эффективность вам уже обосновали. Хотя я сам лично ни одного такого фильтра не тестировал.
 
 Top
EuGen Администратор
Отправлено: 02 Октября, 2013 - 17:20:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




StasHappy пишет:
Значит оно ещё просто не найдено.

Хорошо. Предположим, есть множество разрешённых символов и множество тех, что будет сначала вырезать фильтр (как Вы упоминали выше - чтобы не дать возможности чего-либо (п)(о)(д)(о)(б)(н)(о)(г)(о) - про то, что выражение типа F(x)=x пострадает - умолчим). Тогда, пусть слово "FOO" считается запрещённым, а, например, символ "H" будет разрешён.
Пожалуйста, решите подобное:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. HHHH  HHHH  HHHH
  3. H     H  H  H  H
  4. HH    H  H  H  H
  5. H     H  H  H  H
  6. H     HHHH  HHHH
  7.  

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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
StasHappy
Отправлено: 02 Октября, 2013 - 19:53:48
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. HHHH  HHHH  HHHH
  3. H     H  H  H  H
  4. HH    H  H  H  H
  5. H     H  H  H  H
  6. H     HHHH  HHHH


EuGen. Врятли пользователи будут утруждать себя этим. Мне не требуется идеальных решений. Достаточно простого, но действенного варианта. Я думаю сделать следующим образом. Если пользователь вводит бранные слова и отправляет текст, то он будет предупрежден о правовой ответственности с указанием на соответсвующие правила и нормы. Мне по идее не нужен фильтр с заменой. Мне нужны только два состояния: TRUE или FALSE. Если TRUE, то значит строка содержит бранные выражения и мы останавливаем отправку сообщения и выводим предупреждение. Примерно так. Думаю если пользователь получит предупреждение, то он не будет дальше упорствовать в своих начинаниях.
(Добавление)
У меня последний вопрос. Как лучше сделать.. Или создать таблицу в БД и занести в неё список запрещенных слов. А в последствии уже по ним проверять строку(с помощью полнотекстового поиска). Или записать запрещенные слова в массив и пихнуть все это в отдельных php файл. Который впоследствии, будем подключать во время работы нашей функции. Что будет работать быстрее?

(Отредактировано автором: 02 Октября, 2013 - 20:00:46)

 
 Top
alexiy
Отправлено: 02 Октября, 2013 - 20:06:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




StasHappy
я не ленивый и поэтому
╔══╦╗╔╗╔╗╔══╗─╔══╦══╗
║╔╗║║║║║║║╔╗║─║╔╗║╔╗║
║║║║║║║║║║║║║─║║║║╚╝║
║║║║║║║║║║║║║─║║║║╔╗║
║║║║╚╝╚╝╠╝╚╝╚╦╝║║║║║║
╚╝╚╩════╩════╩═╝╚╩╝╚╝
угадай какую букву я хотел поставить вместо буквы "Ш" и как ты это сможешь остановить, на это дело потратил 5 секунд!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB