Перейти к контенту

Быстрый жестокий бан


FatCat

Рекомендуемые сообщения

Набросал на скорую руку, весь интерфейс через жопdie()

 

skin_modcp.php

После

	 <select name='iptool' class='forminput'>
	 <option value='resolve'>{$ibforums->lang['ip_resolve']}</option>
	 <option value='posts'>{$ibforums->lang['ip_posts']}</option>
	 <option value='members'>{$ibforums->lang['ip_members']}</option>

добавить:

		 <option value='ban'>Ban</option>
	 <option value='unban'>UnBan</option>

 

mod_cp.php

После

			$this->output .= $this->html->mod_simple_page( $ibforums->lang['cp_results'], $ibforums->lang['ip_resolve_result'] );

			return TRUE;

		}
	}

добавить

		else if ($ibforums->input['iptool'] == 'ban')
	{
		if(is_writeable( '.htaccess' ))
		{
			@ob_start();
			include( '.htaccess' );
			$htaccess = @ob_get_contents();
			@ob_end_clean();

			if(!stristr($htaccess,"Deny from ".$ibforums->input['ip']))
			{
				$htaccess = str_replace("Allow from All","Deny from ".$ibforums->input['ip'].PHP_EOL."Allow from All",$htaccess);
				$fh = fopen('.htaccess', "w");
				fwrite($fh, $htaccess);
				fclose($fh);
				die("<h1 align='center'>Выполнено!!!<br>".$ibforums->input['ip']." забанен.</h1>");
			}
			else
			{
				die("<h1 align='center'>Этот IP-адрес УЖЕ запрещен файлом .htaccess !!!<br>Ищите другие баны этого пользователя.</h1>");
			}
		}
		else
		{
			die("<h1 align='center'>Нет доступа к файлу .htaccess !!!</h1>");
		}
	}
	else if ($ibforums->input['iptool'] == 'unban')
	{
		if(is_writeable( '.htaccess' ))
		{
			@ob_start();
			include( '.htaccess' );
			$htaccess = @ob_get_contents();
			@ob_end_clean();

			if(stristr($htaccess,"Deny from ".$ibforums->input['ip']))
			{
				$htaccess = str_replace("Deny from ".$ibforums->input['ip'].PHP_EOL,"",$htaccess);
				$fh = fopen('.htaccess', "w");
				fwrite($fh, $htaccess);
				fclose($fh);
				die("<h1 align='center'>Выполнено!!!<br>".$ibforums->input['ip']." разбанен.</h1>");
			}
			else
			{
				die("<h1 align='center'>Этот IP-адрес не запрещен файлом .htaccess !!!<br>Ищите другие баны этого пользователя.</h1>");
			}
		}
		else
		{
			die("<h1 align='center'>Нет доступа к файлу .htaccess !!!</h1>");
		}
	}

 

Очевидно, что файл .htaccess должен присутствовать и иметь как минимум такие инструкции:

<Limit GET>
Order Allow,Deny
Allow from All
</Limit>

Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

Если нужно не только забанить по айпишнику, но и по нику, небольшое дополнение:

 

Topics.php

В функции view_ip($row, $poster)

Найти где формируется гиперлинк, и в нем после

<a href='{$ibforums->base_url}act=modcp&CODE=ip&incoming={$row['ip_address']}

добавить

&mid={$poster['id']}

 

 

skin_modcp.php

Найти:

<form name='ibform' action='{$ibforums->base_url}' method='post'>
<input type='hidden' name='s' value='{$ibforums->session_id}'>
<input type='hidden' name='act' value='modcp'>
<input type='hidden' name='CODE' value='doip'>

Добавить ниже

<input type='hidden' name='mid' value='{$ibforums->input['mid']}'>

 

Теперь в mod_cp.php айдишник юзера мы можем получить как значение переменной $ibforums->input['mid'].

То есть, после

		else if ($ibforums->input['iptool'] == 'ban')
	{

можно добавить запрос на смену группы:

			if( intval($ibforums->input['mid'])>0 )$DB->query("UPDATE ibf_members SET mgroup = 'ID группы baned' WHERE mid = ".$ibforums->input['mid']);

или по желанию любые иные способы унижения этого пользователя в глазах общественности.

 

 

Но будет проблема с разбаниванием:

Исходная mgroup пользователя нигде не сохраняется; и в случае разбанивания придется всех разбаниваемых переводить в группу "пользователи" (или какую-то иную, но одну на всех), независимо от того, в какой группе он был до бана.

Ссылка на комментарий
Поделиться на других сайтах

if( intval($ibforums->input['mid'])>0 )$DB->query("UPDATE ibf_members SET mgroup = 'ID группы baned' WHERE id = ".$ibforums->input['mid']);

 

а так все просто супер !!!

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.