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

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


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']);

 

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

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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