Появился у меня один скучающий деятель: ходит по проксям, каждые 5-10 минут регистрирует вручную новый ник и пишет всякую фигню со скоростью 2 сообщения в минуту.
Забодало каждый раз лезть в админку удалять ник, чистить топики, банить очередной проксевый айпишник в эйчтиакцессе.
Сделал "мухобойку" в профиль. Удаляет от пользователя всё, в том числе и записи в mJournal'е.
lang_profile.php
'to_bioreactor' => "Удалить профиль и забанить по IP",
skin_profile.php
После
function show_profile($info) {
global $ibforums, $INFO;
'cp_no_user' => "Запрошенный пользователь не найден",
mod_cp.php
После
case 'doip':
$this->do_ip();
break;
добавил
case 'bioreactor':
$this->bioreactor();
break;
И добавил функцию:
function bioreactor()
{
global $std, $ibforums, $DB, $print, $INFO;
if ( $ibforums->member['mgroup'] != $ibforums->vars['admin_group'] )
{
$this->mod_error('cp_no_perms');
return;
}
$DB->query("SELECT * FROM ibf_members WHERE id = ".$ibforums->input['mid']);
if( $row = $DB->fetch_row() )
{
$del_topics = "";
$del_full_topics = "";
$del_topics_counter = "";
$del_posts_in_topic = 0;
$del_full_topics_counter = 0;
$DB->query("SELECT t.tid, t.posts, p.pid, p.author_id, p.author_name, p.topic_id
FROM ibf_topics t, ibf_posts p
WHERE p.topic_id = t.tid and p.author_id = '".intval($ibforums->input['mid'])."'
ORDER BY t.tid");
$ibf_stats_count = $DB->get_num_rows();
if($ibf_stats_count > 0)
{
while($mem = $DB->fetch_row())
{
$member_name = $mem['author_name'];
if($mem['posts'] == '0')
{
$del_full_topics .= $mem['tid'].",";
$del_full_topics_counter++;
}
else
{
if($del_topics_counter != $mem['tid'])
{
$del_topics .= "|".$del_posts_in_topic.", ".$mem['tid'];
$del_posts_in_topic = 1;
}
else
{
$del_posts_in_topic++;
}
$del_topics_counter = $mem['tid'];
}
}
$del_topics .= "|".$del_posts_in_topic;
$del_topics = str_replace("|0, ","",$del_topics);
$del_full_topics .= "endofstring";
$del_full_topics = str_replace(",endofstring","",$del_full_topics);
$del_full_topics = str_replace("endofstring","",$del_full_topics);
if($del_full_topics)$DB->query("DELETE FROM ibf_topics WHERE tid IN ( ".$del_full_topics." )");
$recall_topic_arr = explode(",", $del_topics);
foreach ($recall_topic_arr as $r_string)
{
$r_string_topic = explode("|",$r_string);
if($r_string_topic[0])$DB->query("UPDATE ibf_topics SET posts = ( posts - ".$r_string_topic[1]." ) WHERE tid = ".$r_string_topic[0]." LIMIT 1");
}
$DB->query("DELETE FROM ibf_posts WHERE author_id = ".intval($ibforums->input['mid']));
$ibf_stats_count = $ibf_stats_count - $del_full_topics_counter;
$DB->query("UPDATE ibf_stats SET TOTAL_REPLIES = (TOTAL_REPLIES - ".$ibf_stats_count.")");
if($del_full_topics_counter > 0)$DB->query("UPDATE ibf_stats SET TOTAL_TOPICS = (TOTAL_TOPICS - ".$del_full_topics_counter.")");
}
$DB->query("DELETE FROM ibf_messages WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_tracker WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_forum_tracker WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_jposts WHERE journal_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_jcomments WHERE owner_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_moderators WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE FROM ibf_calendar_events WHERE userid = ".intval($ibforums->input['mid']));
$DB->query("DELETE from ibf_contacts WHERE member_id='".intval($ibforums->input['mid'])."' or contact_id='".intval($ibforums->input['mid'])."'");
$DB->query("DELETE from ibf_members WHERE id = ".intval($ibforums->input['mid']));
$DB->query("DELETE from ibf_pfields_content WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("DELETE from ibf_member_extra WHERE id = ".intval($ibforums->input['mid']));
$DB->query("DELETE from ibf_validating WHERE member_id = ".intval($ibforums->input['mid']));
$DB->query("SELECT id, name FROM ibf_members ORDER BY joined DESC LIMIT 1");
$memb = $DB->fetch_row();
$DB->query("SELECT COUNT(id) as members from ibf_members");
$r = $DB->fetch_row();
$DB->query("UPDATE ibf_stats SET MEM_COUNT = '".$r['members']."', LAST_MEM_NAME = '".$memb['name']."', LAST_MEM_ID = '".$memb['id']."'");
$std->Antibot_hard("<br><i>Модератор <a href='index.php?showuser=".$ibforums->member['id']."'>".$ibforums->member['name']."</a> вместе с удалением профиля <b>".$row['name']."</b></i>.",100,$row['ip_address']);
$print->redirect_screen( "профиль пользователя полностью удален", "act=idx" );
}
else
{
$this->mod_error('cp_no_user');
return;
}
}
Функцию Antibot_hard приводить не буду, скажу лишь, что она отвечает за редактирование эйчтиакцесса, пишет логи в специальный топик в форуме и делает еще много других полезных действий.
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
FatCat
Появился у меня один скучающий деятель: ходит по проксям, каждые 5-10 минут регистрирует вручную новый ник и пишет всякую фигню со скоростью 2 сообщения в минуту.
Забодало каждый раз лезть в админку удалять ник, чистить топики, банить очередной проксевый айпишник в эйчтиакцессе.
Сделал "мухобойку" в профиль. Удаляет от пользователя всё, в том числе и записи в mJournal'е.
lang_profile.php
skin_profile.php
После
добавил
После
добавил
lang_modcp.php
mod_cp.php
После
добавил
И добавил функцию:
Функцию Antibot_hard приводить не буду, скажу лишь, что она отвечает за редактирование эйчтиакцесса, пишет логи в специальный топик в форуме и делает еще много других полезных действий.
Изменено пользователем FatCatСсылка на комментарий
Поделиться на других сайтах
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.