Антиспам для комментариев на uCoz

Антиспам для комментариев на uCoz

29.02.201615175sima

Предлагаем вам решение, которое избавит ваш сайт от ссылочного спама на сайте в системе uCoz. Вернее, два решения. Одно – мягкое, всего лишь не позволяет дописать ссылку, а второе – жесткое, просто скрывает текст комментария, в котором имеется ссылка.

Есть и такой метод, как ввод кода безопасности. Более действенен, кстати, тот вариант кода, в котором необходимо подсчитать сумму или разность чисел. А можно вовсе закрыть комментарии от гостей, именно так я и поступил.

Ну, а если это не вариант, то можно воспользоваться скриптом. Как было написано выше, их здесь два. Один поможет избавиться от тех недоброжелателей, которые набирают свой спам вручную, но от тех, кто пользуется какими-то специальными программами для рассылки комментариев, не спасет. Я же предлагаю свое решение, которое полностью скрывает текст комментария при наличии ссылки. Этот способ плох тем, что при наличии любого вида ссылки сообщение скроется, т.е. даже при наличии просто смайликов.

Установка

При написании. Данный код будет автоматически исправлять текст сообщения при его вводе.

Управление дизайном » Комментарии » Форма добавления комментариев. Ниже вставить:

Код
<script type="text/javascript">  
$(function(){$('#message').keyup(function(){  
  strpsr=$(this).val().toLowerCase(),spout='http://,.ru,.com,.net,.ua,.ucoz,www,.tv,.tk,.info,.su,//'.split(',');  
  for(srchr=0;srchr<spout.length;srchr++){if(strpsr.search(spout[srchr])!= -1){$(this).val(strpsr.replace(spout[srchr],'...'));  
return true;}}});});  
</script>

Постфактум. Следующий вариант системно скроет уже написанный текст сообщения при наличии ссылки.

В виде комментариев замените $MESSAGE$ на:

Код
<?if(strpos($MESSAGE$,'http://')!='-1' || strpos($MESSAGE$,'www')!='-1' || strpos($MESSAGE$,'.ru')!='-1' || strpos($MESSAGE$,'.com')!='-1' || strpos($MESSAGE$,'.net')!='-1' || strpos($MESSAGE$,'.ucoz')!='-1' || strpos($MESSAGE$,'.ua')!='-1' || strpos($MESSAGE$,'.рф')!='-1' || strpos($MESSAGE$,'.tk')!='-1' || strpos($MESSAGE$,'.info')!='-1' || strpos($MESSAGE$,'.su')!='-1' || strpos($MESSAGE$,'.tv')!='-1')?>Комментарий удален.<?else?>$MESSAGE$<?endif?>

Этот код в свою очередь можно переделать так, чтобы сообщение скрывалось полностью. Да и проблема со смайлами решаема, ведь можно проверять наличие в тексте кода img.




Сохраните в социальную сеть
Комментарии (5)
NoNaMe 01.03.2016 в 11:30Спам
Вот бы сделать так, что бы в комментариях смайлы были, а в информеры не передавались. А то если стоит обрыв комментариев по количеству символов и в код информера добавляется половина <img... то все ломается... ((((
-2
Cry Deil 01.03.2016 в 19:19Спам
ещё одна причина использовать emoji jquery !
0
Денис Абдуллин 01.03.2016 в 20:06
Сделайте, чтобы код обрезался до символа "<" при его наличии. Это возможно.
0
NoNaMe 16.03.2016 в 00:40Спам
Если поможете с реализацией подобного рода обрезки комментария, то буду Вам безмерно благодарен, т.к. это перестанет ломать дизайн.
0
Макс Власов 30.07.2016 в 07:36Спам
И ничего трудного. В шаблоне информера замените
Код
$MESSAGE$

на
Код
<?if(strpos($MESSAGE$,'<')!=-1)?><?substr($MESSAGE$,0,strpos($MESSAGE$,'<'))?><?else?>$MESSAGE$<?endif?>
1
Чтобы оставить комментарий под этой публикацией,
зарегистрируйтесь или войдите.
Рейтинг лучших сервисов для самостоятельного создания сайта.
Лучшие конструкторы
Легко! Если пользоваться нашими советами.
Создать сайт