Вместо вывода громоздких таблиц банов, скромное окно, где можно посмотреть конкретный бан, а не читать все подряд.
Пусть только тот, кого заблокировали, знает за что он заблокирован.
Code
<?php
$conf = array(
"rdb" => "auth", // имя базы реалмов
"cdb" => "characters", // имя базы персонажей
"db_host" => "localhost", // хост базы MySQL
"db_port" => "3306", // порт базы MySQL
"db_login" => "root", // логин базы MySQL
"db_pass" => "6655", // пароль базы MySQL
"db_ench" => "utf8" // кодировка соединения
);
// функция получения реального ip адреса
function get_ip() {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
$ip = $_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ip = $_SERVER['REMOTE_ADDR'];
return $ip;
}
// подключение и установка кодировки
$conn = mysql_connect($conf['db_host'].":".$conf['db_port'], $conf['db_login'], $conf['db_pass']) or die ("Невозможно соединится с базой MySQL: ".mysql_error());
mysql_query("SET NAMES '".$conf['db_ench']."'");
// определяем переменные
$inf = NULL;
if (isset($_POST['check'], $_POST['key'])) {
$check = mysql_real_escape_string($_POST['check']);
$key = $_POST['key'];
}
else {
$check = NULL;
$key = NULL;
}
// проверка ip
if ($key == 1)
{
if (empty($_POST['check']))
$inf = "Введите IP.";
elseif (!preg_match("/^[0-9]+.[0-9]+.[0-9]+.[0-9]/i", $check))
$inf = "Проверьте правильность ввода IP.";
else {
$res = mysql_fetch_row(mysql_query("SELECT * FROM `".$conf['rdb']."`.`ip_banned` WHERE `ip` = '".$check."'"));
if ($res != NULL)
{
if ($res[1] == $res[2])
$unbandate = "никогда";
else
$unbandate = date("d.m.Y H:m", $res[2]);
$inf = "IP заблокирован по причине: ".$res[4]."<br/>Заблокировал: ".$res[3]."<br/>Дата разблокировки: ".$unbandate;
}
else
$inf = "IP не заблокирован.";
}
}
// проверка аккаунта
if ($key == 2)
{
if (empty($_POST['check']))
$inf = "Введите имя аккаунта.";
elseif (!preg_match("/^\w*$/", $check))
$inf = "Проверьте правильность ввода имени аккаунта.";
else {
$res = mysql_fetch_row(mysql_query("SELECT * FROM `".$conf['rdb']."`.`account_banned` WHERE `id` = (SELECT `id` FROM `".$conf['rdb']."`.`account` WHERE `username` = '".$check."') AND `active` = '1'"));
if ($res != NULL)
{
if ($res[1] == $res[2])
$unbandate = "никогда";
else
$unbandate = date("d.m.Y H:m", $res[2]);
$inf = "Аккаунт заблокирован по причине: ".$res[4]."<br/>Заблокировал: ".$res[3]."<br/>Дата разблокировки: ".$unbandate;
}
else
$inf = "Аккаунт не заблокирован.";
}
}
// проверка персонажа
if ($key == 3)
{
if (empty($_POST['check']))
$inf = "Введите имя персонажа.";
elseif (!preg_match("/^[a-zA-Zа-яА-Я]+/u", $check))
$inf = "Проверьте правильность ввода имени персонажа.";
else {
$res = mysql_fetch_row(mysql_query("SELECT * FROM `".$conf['cdb']."`.`character_banned` WHERE `guid` = (SELECT `guid` FROM `".$conf['cdb']."`.`characters` WHERE `name` = '".$check."') AND `active` = '1'"));
if ($res != NULL)
{
if ($res[1] == $res[2])
$unbandate = "никогда";
else
$unbandate = date("d.m.Y H:m", $res[2]);
$inf = "Персонаж заблокирован по причине: ".$res[4]."<br/>Заблокировал: ".$res[3]."<br/>Дата разблокировки: ".$unbandate;
}
else
$inf = "Персонаж не заблокирован.";
}
}
mysql_close($conn);
?>
<div align="center">
<?php
if($inf == NULL)
echo "Ваш IP адрес: ".get_ip()."<br/></br>";
else
echo $inf."<br/></br/>";
?>
<form name="form" method="post">
<select selected="key" name="key">
<option value="1">IP</option>
<option value="2">Аккаунт</option>
<option value="3">Персонаж</option>
</select>
<input type="text" name="check" />
<input type="submit" name="submit" value="Проверить" />
</form>
</div>