Баним из HLstatsX в SourceBans

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Сообщение
Автор
TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#1 Сообщение 25.04.2010, 00:59

Бывает зайдёт кто-нибудь, почитерит\понарушает и выйдет. Потом либо на форуме отпишут либо в чате\демке увидишь и чтобы его забанить надо искать SteamID, IP, ник в логах\стате.
Надоело это дело и добавил в HLstatsX:CE в профиль игрока возможность его забанить.

Изображение

Изображение

Установка проще некуда)

Заливаем в корень статы файл hlx_bans.php - http://tinyurl.com/276h5rw
Редактируем файл корень_статы/pages/header.php

Добавляем перед этим: (строка ~140) Этот код:

Код: Выделить всё

<? if (isset($_SESSION['loggedin'])) { ?>
<script>
function changeReason(szListValue)
{
	document.getElementById('dreason').style.display = (szListValue == "other" ? "block" : "none");
}
function checkBanData()
{
    if (document.getElementById("listReason").value=="") { alert("Укажите причину!"); return false; }
    if (document.getElementById("listReason").value=="other")
    {
        if (document.getElementById("txtReason").value=="")
        {
            alert("Укажите причину!");
            return false;
        }else
        {
            document.getElementById('ban_reason').value=document.getElementById('txtReason').value;
        }
    }else{
        document.getElementById('ban_reason').value=document.getElementById('listReason').value;
    }
	document.getElementById('ban_lenght').value=document.getElementById('banlength').value;
    document.getElementById('ban_type').value=document.getElementById('bantype').value;
    document.getElementById("hlxbanform").submit();
}

</script>
<? } ?>
Редактируем файл корень_статы/pages/playerinfo_general.php

Добавляем после этого: (строка ~375)

Код: Выделить всё

							$cellbody .= "</a>";
							echo $cellbody;
						?>
					</td>
				</tr>
Этот код:

Код: Выделить всё

                <?
	            if (isset($_SESSION['loggedin'])) {
                ?>
                <tr class="bg1">
					<td colspan=2>
                        <table class=bantab123 cellpadding=1 cellspacing=1 border=0>
                            <tr>
                                <td style='width: 180px; border: 0px;'>
                                    <select id="listReason" name="listReason" style='width: 180px;' TABINDEX=4 onChange="changeReason(this[this.selectedIndex].value);">
                    					<option value="" selected> -- Выберете причину -- </option>
		                        			<optgroup label="Hacking">
                        						<option value="Aimbot">Aimbot</option>
				                        		<option value="Antirecoil">Antirecoil</option>
                				        		<option value="Wallhack">Wallhack</option>
				                		        <option value="Spinhack">Spinhack</option>
                        						<option value="Multi-Hack">Multi-Hack</option>
		        		                		<option value="No Smoke">No Smoke</option>
                        						<option value="No Flash">No Flash</option>
				                        	</optgroup>
                				        	<optgroup label="Behavior">
				                		        <option value="Team Killing">Team Killing</option>
                        						<option value="Team Flashing">Team Flashing</option>
		        		                		<option value="Spamming Mic/Chat">Spamming Mic/Chat</option>
                        						<option value="Inappropriate Spray">Inappropriate Spray</option>
        				                		<option value="Inappropriate Language">Inappropriate Language</option>
                        						<option value="Inappropriate Name">Inappropriate Name</option>
        				                		<option value="Ignoring Admins">Ignoring Admins</option>
                        						<option value="Team Stacking">Team Stacking</option>
                        					</optgroup>
        									<optgroup label="Custom">
        									    <option value="Тимкилл">Тимкилл</option>
                                                <option value="Мат">Мат</option>
        									</optgroup>
        									<option value="other">Другая причина</option>
        				            </select>
                				    <div id="dreason" style="display:none; padding-top: 4px;">
                     					<textarea TABINDEX=4 cols="20" rows="5" id="txtReason" name="txtReason"></textarea>
                     				</div>
	                            </td>
			                    <td valign=top style='border: 0px;'><div align="left">
			                        <select id="banlength" name="banlength" TABINDEX=5>
								    	<option value="0">Постоянно</option>
										<optgroup label="minutes">
        									<option value="1">1 минута</option>
        									<option value="5">5 минут</option>
        									<option value="10">10 минут</option>
        									<option value="15">15 минут</option>
        									<option value="30">30 минут</option>
        									<option value="45">45 минут</option>
										</optgroup>
                                        <optgroup label="hours">
        									<option value="60">1 час</option>
        									<option value="120">2 часа</option>
		        							<option value="180">3 часа</option>
				        					<option value="240">4 часа</option>
						        			<option value="480">8 часов</option>
								        	<option value="720">12 часов</option>
										</optgroup>
                                        <optgroup label="days">
        									<option value="1440">1 день</option>
		        							<option value="2880">2 дня</option>
				        					<option value="4320">3 дня</option>
						        			<option value="5760">4 дня</option>
								        	<option value="7200">5 дней</option>
        									<option value="8640">6 дней</option>
		        						</optgroup>
                                        <optgroup label="weeks">
        									<option value="10080">1 неделя</option>
		        							<option value="20160">2 недели</option>
				        					<option value="30240">3 недели</option>
						        		</optgroup>
                                        <optgroup label="months">
        									<option value="43200">1 месяц</option>
		        							<option value="86400">2 месяца</option>
				        					<option value="129600">3 месяца</option>
						        			<option value="259200">6 месяцев</option>
								        	<option value="518400">12 месяцев</option>
        								</optgroup>
                                    </select>
                                </td>
    		                    <td valign=top style='border: 0px;'>
    			                    <div align="left">
                        				<select id="bantype" name="bantype" TABINDEX=6>
                    						<option value="0">SteamID</option>
                    						<option value="1">IP адрес</option>
                                            <option value="2">ID и IP</option>
                    					</select>
                        			</div>
                        		</td>
                                <td valign=top style='border: 0px;'>
                                    <input type="button" onClick='checkBanData();' name="butt2ban" value="Забанить" />
            					</td>
                            </tr>
                        </table>
                    </td>
				</tr>
                <?
                }
                ?>
И заменяем в конце этого же файла корень_статы/pages/playerinfo_general.php этона это

Код: Выделить всё

    if (isset($_SESSION['loggedin'])) {
?>
<form name="hlxbanform" id="hlxbanform" action="hlx_bans.php" method="POST">
    <input type="hidden" id="ban_reason" name="ban_reason" value="">
    <input type="hidden" id="ban_lenght" name="ban_lenght" value="">
    <input type="hidden" id="ban_type" name="ban_type" value="">
    <input type="hidden" id="ban_player_id" name="ban_player_id" value="<?=$player?>">
    <input type="hidden" id="ban_player_steamid" name="ban_player_steamid" value="<?=$uqid?>">
</form>
<? } ?>
Осталось указать параметры подключения к БД SourceBans в hlx_bans.php

Код: Выделить всё

    // Параметры подключения к базе данных сорсбанса
    $sourcebans_mysql_host='localhost';      // адрес хоста базы
    $sourcebans_mysql_user='user';           // имя пользователя
    $sourcebans_mysql_pass='password';  // пароль
    $sourcebans_mysql_dbname='database_name';      // имя базы сорсбанса
    $sourcebans_mysql_prefix='prefix';              // префикс таблиц
    $sourcebans_mysql_port='';                  // порт БД (по-умолчанию 3306)
    $sourcebans_admin_id=ID_админа;                    // ID админа, от которого банить
Готово! Теперь любой админ хлстатса может забанить любого игрока прямо из статы.

Вы можете добавить свою причину, вставив после:

Код: Выделить всё

        	<optgroup label="Custom">
строку:

Код: Выделить всё

        		<option value="Здесь текст своей причины">Здесь текст своей причины</option> 
Если выбрать тип бана "IP и ID" в сорсбанс добавляются два бана - один по SteamID, второй по IP.
Если время бана "Перманент" - у игрока "Hide Ranking" помечается как "Flag as banned" (ранк скрывается и игрок помечается как "Забаненный")
Вложения
hlx_bans.zip
(1.68 КБ) 154 скачивания
hlx_bans.zip
(1.68 КБ) 154 скачивания
Последний раз редактировалось TopServers 05.05.2011, 15:10, всего редактировалось 2 раза.

Аватара пользователя
Punkk
Капитан
Капитан
Сообщения: 481
Зарегистрирован: 04.01.2008
Поблагодарили: 11 раз

#2 Сообщение 25.04.2010, 16:21

спасибо за информацию
Поставил себе

Аватара пользователя
serg
Капитан
Капитан
Сообщения: 473
Зарегистрирован: 27.10.2009
Откуда: Серпухов
Благодарил (а): 96 раз
Поблагодарили: 77 раз
Контактная информация:

#3 Сообщение 25.04.2010, 17:12

Punkk
У тебя работает?Банит?
Цитатник
Fast Food писал(а):Помогите плиз найти на сервер CSS эмулятор стима который не меняет стим ид у лицензионок а пираткам выдаёт такой стим ид STEAM_666.88.666 очень надо плиз!!!!
orgasm писал(а):STELS3000
у тебя лицензия?
STELS3000 писал(а):ДА! Ломаный стим!!
Loco писал(а):А так, для 4 серверов, тебе бы надо 4-х ядерный процессор.
CrAzY3010 писал(а): Вчера он представился админом, я ему поверил, ибо он умел писать синими и зелёными буквами
Misha-Tuman писал(а):Jobman у тебя голова из жопы и воняет говном
По информативности сайт довольно полезный. Но админы там - бритоголовые неадекваты, склонные к национализму и расизму. На аватарках - одна свастика. А главный там - инсульт666. Делает довольно неплохие no-steam сборки. Короче, без крепкой психики туда лучше не ходить.

Аватара пользователя
Punkk
Капитан
Капитан
Сообщения: 481
Зарегистрирован: 04.01.2008
Поблагодарили: 11 раз

#4 Сообщение 25.04.2010, 20:47

serg561432 писал(а):Punkk
У тебя работает?Банит?
Разобрался заработало и банит
Ошибки у меня были такие:
</title>
</head>
Надо было вставить перед Хеад я вставил перед Титл

Второе у меня Банс пхп лежит не в корне сайта исправил так

Код: Выделить всё

<form name="hlxbanform" id="hlxbanform" action="/hlx_bans.php" method="POST">
Мне надо было так написать:
<form name="hlxbanform" id="hlxbanform" action="/hlstatx/hlx_bans.php" method="POST">
Ну и последнее поставил кавычки в банс пхп
$sourcebans_admin_id='1'; // ID ,
TopServers
А где в соурсбане посмотреть ИД админа что то не вижу

TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#5 Сообщение 28.04.2010, 10:31

А где в соурсбане посмотреть ИД админа что то не вижу
Либо в БД, либо зайти в "админы", там в списке нажать на кол-во банов этого админа (здесь 97 bans): имя_админа (97 bans | 97 w.d.) и в адресной строке (в URL) в параметре advSearch будет ID админа:
p=banlist&advSearch=5&advType=admin

Аватара пользователя
Punkk
Капитан
Капитан
Сообщения: 481
Зарегистрирован: 04.01.2008
Поблагодарили: 11 раз

#6 Сообщение 29.04.2010, 15:35

TopServers
Спасибо все работает
Единственный минус в том Если человек играет на сервере и вы его так баните Бан он получит только при смене карты

TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#7 Сообщение 26.05.2010, 02:01

Конечно можно и кик прикрутить, только стоит ли оно того? Я считаю и так нормально, и этого достаточно.

Аватара пользователя
Nakoyane
Капитан
Капитан
Сообщения: 274
Зарегистрирован: 15.08.2009
Откуда: Europe, Ukraine
Поблагодарили: 1 раз
Контактная информация:

#8 Сообщение 26.05.2010, 10:44

Спасибо большое за тему. Хорошо было бы прикрепить её
Правда жизни открывается нам именно в форме парадоксов.
Верное представление - это нечто среднее между пониманием и невежеством.

TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#9 Сообщение 05.05.2011, 15:11

Обновил

Код: Выделить всё

    // Version 1.2 от 05.05.2011
    // Fixed: Ошибка при отсутствии IP игрока в базе HLstatsX
    // Fixed: Ошибка в SQL-запросе если ник игрока содержит апостроф

MThunder
Нович0к
Нович0к
Сообщения: 3
Зарегистрирован: 11.03.2012

#10 Сообщение 11.03.2012, 14:09

Ребят, помогите.
Не получается поставить эту модификацию.
Затык на этапе передачи данных ПОСТом в hlx_bans.php
А именно не доходят переменные

Код: Выделить всё

    $player_id=(int)@$_POST['ban_player_id'];
    $player_uqid=(int)@$_POST['uqid'];
Эти переменные доходят, они-то из формы берутся, деваться им некуда )))

Код: Выделить всё

    $lenght=(int)@$_POST['ban_lenght']*60;
    $type=(int)@$_POST['ban_type'];
    $reason=$_POST['ban_reason'];
Сделал эхо в hlx_ban.php

Код: Выделить всё

    echo "reason=".$reason." / ";
    echo "id=".$player_id." / ";
    echo "uqid=".$player_uqid." / ";
    echo "len=".$lenght." / ";
    echo "type=".$type." / ";
И вижу нулевые результаты в $player_id и $player_uqid.
Куда копать не пойму.
Стата последняя, 1.6.15.

Косяк где-то тут, в присвоении данных в файле /HLStatsX/pages/playerinfo_general.php :

Код: Выделить всё

    <input type="hidden" id="ban_player_id" name="ban_player_id" value="<?=$player?>">
    <input type="hidden" id="ban_player_steamid" name="ban_player_steamid" value="<?=$uqid?>">
Может где синтаксис не соответствует?

MThunder
Нович0к
Нович0к
Сообщения: 3
Зарегистрирован: 11.03.2012

#11 Сообщение 14.03.2012, 03:44

ап, что ли...

TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#12 Сообщение 14.03.2012, 19:01

$player_uqid=(int)@$_POST['uqid'];
uqid не передаётся в POST

MThunder
Нович0к
Нович0к
Сообщения: 3
Зарегистрирован: 11.03.2012

#13 Сообщение 14.03.2012, 21:50

А $player почему не передается?

TopServers
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 09.02.2010
Поблагодарили: 17 раз

#14 Сообщение 16.03.2012, 13:52

$_POST['ban_player_id'] не передаётся?
Посмотри в исходном коде страницы заполнены ли value у этих инпутов.

Ответить Вложения 1