Хоть и не публикуются эти ссылки автоматом(премодерация), но постоянно удалять просто надоело.
Решил подключить своё раннее изобретение, которое работает безотказно в комментариях новостей и блогов.
Если интересно, то:
1. Есть в админке в меню Комментарии Настройки - вбиваем в поле Запрещённые слова все, что вам не нравится - от откровенного мата, до доменов, которые хотите заблокировать.
2. открываем файл mod/link/add.php, ищем строку:
<?phpif($e['title'] == 0 && $e['text'] == 0 && $e['url'] == 0){
и перед ней вставляем такой код:
<?php#/*NO SPAM*/
if($url != ""){
$bedwords = explode('|',$setting['combad']);
for ($i = 0; $i < sizeof($bedwords); $i++)
if (stripos($url, $bedwords[$i]) !== false){
if($setting['ajax'] == 'yes'){
print "<p class="errtitle">Вы уже в черном списке, но все равно - Спасибо!</p>";
exit;
}
else{
include(DNBASE."temp/head.php");
header("Location: $url");
include(DNBASE."temp/foot.php");
}
}
}
###############
if($text != ""){
$bedwords = explode('|',$setting['combad']);
for ($i = 0; $i < sizeof($bedwords); $i++)
if (stripos($text, $bedwords[$i]) !== false){
if($setting['ajax'] == 'yes'){
include(DNBASE."temp/head.php");
print "<p class="errtitle">Вы уже в черном списке, но все равно - Спасибо!</p>";
include(DNBASE."temp/foot.php");
exit;
}
else{
include(DNBASE."temp/head.php");
header("Location: $url");
include(DNBASE."temp/foot.php");
}
}
}
#/*NO SPAM*/
Первое условие блокирует публикацию запрещенных url, второе - запрещенные слова(мат, виагра и т.д.).
Что получаем на выходе: при попытке добавить текст с описанием, включающим запрещенные вами слова -
1. если включен в настройках аякс - вываливается сообщение
2. если аякс выключен происходит редирект на сайт, добавленный спамером.
Естественно ничего в БД не добавляется.
Если тема интересна - юзайте, мне помогает.
p.s. если кому интересно, то приведу решение для комментариев к новостям.