Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Веб Форумы » VBulletin 3.x.x » Замучал флуд? Хак для борьбы с ним!
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
mkonk
Участник
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: Mar 2004
Место проживания: Gbnth
Публикаций: 13
Статус: mkonk в оф-лайне
Exclamation Замучал флуд? Хак для борьбы с ним! [сообщение #79824]

Вот суть работы:
Система не реагирует на создание тем
Система не реагирует на сообщения в форумах , в которых не подсчитываются сообщения
Система не реагирует на пользователей, у которых число сообщений меньше установленного вами.
Принцип работы:
Уровень флуда (УФ) разрешенный на форумах, в процентах: 10. Т. е. из 10 сообщений - 1 должно быть оценено (добавлена репутация). (Настраивается) При добавлении 11-ого система срабатывает.
Система подсчитывает количество сообщений (если они есть), превышающих УФ (КС)
Вычисляет процент КС от общего числа сообщений пользователя (ПКС)
Убавляет репутацию пользователю на величину ПКС при создании КАЖДОГО нового поста, не зависимо от его содержания, если число неоцененных постов превышает УФ
Снижение репутации обрабатывайте "продвижением" из админки .
В комментариях к снижению репутации подробно написано за что , сколько снято и что делать

И так, устанавливаем:
Ð_едактируем файл includes/functions_newpost.php

Сразу после
if ($foruminfo['countposts'])
{
$bbuserinfo['posts'] += 1;

Вставте

if ($type!='thread')
{
$knp=100; //Общее количество постов юзера, после которого начинаются наказания
if($bbuserinfo['posts']>$knp)
{
$rep_user=$DB_site->query_first("
SELECT DISTINCT user.username, user.posts, user.reputation, count( reputation.postid ) rep_posta
FROM " . TABLE_PREFIX . "user AS user, " . TABLE_PREFIX . "reputation AS reputation
WHERE user.usergroupid NOT IN (!!!!!!!!!!!!!!!!!!!!!!!!!)
AND user.userid = reputation.userid
AND user.userid =$bbuserinfo[userid]
AND reputation.reputation >=0
GROUP BY reputation.userid
");
$ub=10;//Ð_азрешенный на форумах процент оцененых сообщений от общего кол-ва постов юзера
$rpp=$rep_user['posts']-($rep_user['posts']*$ub/100);//Ð_азрешено пустых постов для этого пользователя
$pp=$rep_user['posts']-$rep_user['rep_posta'];//Кол-во пустых постов пользователя
$lp=$pp-$rpp;//Лишние посты пользователя
if($rep_user['posts']>0)$repa_minus=floor($lp*100/$rep_user['posts']);// Отнимаемая репа за каждый пост
if($repa_minus>0)
{
$lp=ceil($lp);
$bbuserinfo['reputation']-=$repa_minus;
$admin_text="Ð_то антифлуд. С Вас снято $repa_minus очков репутации. Из $rep_user[posts] Ваших сообщений, только $rep_user[rep_posta] оценено положительно. Для отключения антифлуда, удалите $lp наименее важных постов. Ð_епутация: $bbuserinfo[reputation]";
$reputationlevel = $DB_site->query_first("
SELECT reputationlevelid
FROM " . TABLE_PREFIX . "reputationlevel
WHERE $bbuserinfo[reputation] >= minimumreputation
ORDER BY minimumreputation
DESC LIMIT 1
");
$reputationlevelid = intval($reputationlevel['reputationlevelid']);
$DB_site->query("
UPDATE " . TABLE_PREFIX . "user
SET reputation = $bbuserinfo[reputation],
reputationlevelid = $reputationlevelid
WHERE userid = $bbuserinfo[userid]
");
$repa_minus*=-1;
$DB_site->query("
INSERT INTO " . TABLE_PREFIX . "reputation (postid, reputation, userid, whoadded, reason, dateline)
VALUES ($post[postid], $repa_minus, $bbuserinfo[userid], ХХХХХХХХХ, '" . addslashes($admin_text) . "','" . TIMENOW . "')
");
}
}
}

Вместо восклицательных знаков "!!!!!!!!!!!!!!!!!!!!!!!!!" вставте через запятую без пробелов ID групп которые будут игнорироваться системой. Например: (1,2,3)
Вместо "ХХХХХХХХХ" вставте ID юзера, от чьего имени будет снижаться репа. Например: 1
Вот и все
Уймите бурю возмущения флудеров и пусть сами удаляют свои ненужные посты!!
Удачи!

Сообщение было отредактировано mkonk 11-12-2005 в 04:59

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 09-12-2005 02:56
Нажмите сюда для просмотра профайла mkonk Отправить Персональное сообщение mkonk Посетить домашнию страничку mkonk! Найти сообщения от mkonk Добавить mkonk в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Igor
Модератор
Средний рейтинг: 4.29 | Оценок: 14
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2001
Место проживания: USA
Публикаций: 745
Статус: Igor в оф-лайне
[сообщение #79831]

На моем форуме ни один человек за 10 сообщений не получает оценку. Наверно надо делать на сто сообщений.
Хотя я не буду такой хак ставить, но за идею спасибо.

__________________
C уважением, Игорь
cblog.ru

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 09-12-2005 15:33
Нажмите сюда для просмотра профайла Igor Отправить Персональное сообщение Igor Посетить домашнию страничку Igor! Найти сообщения от Igor Добавить Igor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Xrobak
Участник+
Средний рейтинг: 4.53 | Оценок: 15
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2004
Место проживания: Житомир
Публикаций: 632
Статус: Xrobak в оф-лайне
[сообщение #79854]

я думаю, что можно просто сделать жесткие правила и наказывать за их невыполнение всех без исключения, в том числе и модераторов/супермодераторов, тогда и не будет необходимости и в хаке. Скажете это не реально? Как раз реально, просто если кого-то не устраивают такие жесткие правила на форуме, то проходит мимо и диет на другой форум.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 12-12-2005 14:13
Нажмите сюда для просмотра профайла Xrobak Отправить Персональное сообщение Xrobak Посетить домашнию страничку Xrobak! Найти сообщения от Xrobak Добавить Xrobak в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 20:31.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01090503 seconds (33.33% PHP - 66.67% MySQL) with 21 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.