Название темы Раздел Ответов Последний

Защита сайта от спама в комментариях и профилях для DLE 10.1


16 ноября 2013
Защита сайта от спама в комментариях и профилях для DLE 10.1

Как мне уже надоели пользователи, которые суют свои ссылки куда не попадя как будто, от того что они ссылку добавят у себя в профили, или в комментариях, то у них Тиц сразу подымется до 1000. Хочу разочаровать таких пользователей профеля закрыты на нашем сайте от индексирования, а левые ссылки закрываются через dude Smart Leech, так что время зря не тратьте. :wink:

Установка
В /language/Russian/website.lng и после строчки
'news_err_1'   => "Вы ввели слишком длинное имя.",

Добавляем
'news_err_url'   => "URL адреса сайтов, в поле \"О себе\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",
'news_err_url_p' => "URL адреса сайтов, в поле \"Подпись\" публиковать <b style=\"color:red;\">ЗАПРЕЩЕНО</b>!",

Теперь запретим наглым людям ставить ссылки при регистрации
В файле /engine/modules/register.php
перед
if( dle_strlen( $fullname, $config['charset'] ) > 100 ) $stop .= $lang['reg_err_15'];

Вставляем это;
if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info'])) $stop .= $lang['news_err_url'];

Всё теперь при регистрации ссылку уже не вставишь в профиль, но что мешает изменить профиль потом и вставить ссылку?

идём /engine/modules/profile.php

После
if( intval( $user_group[$member_id['user_group']]['max_info'] ) > 0 and dle_strlen( $info, $config['charset'] ) > $user_group[$member_id['user_group']]['max_info'] ) {

$stop .= $lang['news_err_22'];
}


Вставляем
 if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info']))
{
$stop .= $lang['news_err_url'];
}


Дальше в этом же файле после
if( intval( $user_group[$member_id['user_group']]['max_signature'] ) > 0 and dle_strlen( $signature, $config['charset'] ) > $user_group[$member_id['user_group']]['max_signature'] ) {

$stop .= $lang['not_allowed_sig'];
}
if( dle_strlen( $fullname, $config['charset'] ) > 100 ) {

$stop .= $lang['news_err_23'];
}


Вставляем

if (preg_match ("/href|url|http|www|.ru|.com|.net|.info|.org/i", $_POST['info']))
{
$stop .= $lang['news_err_url_p'];
}


Всё в профиле теперь ссылок не будет.

КОММЕНТАРИИ!!

"/engine/modules/addcomments.php"
идем

После
if( $is_logged and ($member_id['restricted'] == 2 or $member_id['restricted'] == 3) ) {

$stop[] = $lang['news_info_3'];
$CN_HALT = TRUE;

}

добавляем

if( $member_id['user_group'] > 2){
if (preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['comments']) || preg_match ("/href|url|http|www|\.ru|\.com|\.net|\.info|\.org/i", $_POST['name']))
{
$stop[] = "Извините, публиковать ссылки в комментариях запрещено!";
$CN_HALT = TRUE;
}}

Тут "$member_id['user_group'] > 2" отвечает за группу пользователей, которым можно добавлять ссылку в комментариях. В нашем случае комментарии разрешено добавлять администраторам и главным редакторам.(дефолтные названия групп разумеется) Если захочешь чтобы другие группы тоже обходили это условие ссылок в комментариях, замени двойку на ID группы пользователей.

Можно не правя движок всё это использовать с помощью фильтра слов который является стандартной функцией DLE добавляешь слова скажем порно, секс, www, http:// .ru .com .net

Область поиска ставишь комментарии и профиль пользователя, а дальше выбирай сам или заменяй эти ссылки например на слово я спаммер забань меня, или просто ставь запрет...

Если помог ставьте +, Спасибо за внимание.

Автор: ПафНутиЙ

ava

Написал: игорь
Группа: Анонимус
1
+1
30 июня 2014 17:46
спасибо! полезно

ava

Написал: virusnak
Группа: Посетители Пользователь offline
2
0
29 августа 2014 03:18
отличная вещь спасаюсь от самого себя

ava

Написал: Leito059
Группа: Посетители Пользователь offline
3
0
15 сентября 2014 11:31
всегда настраиваю антиспам, раньше пользовался wordpress'ом, теперь и тут узнал как спасаться от спамщиков


Информация
Посетители, находящиеся в группе Анонимус, не могут оставлять комментарии к данной публикации.