Просмотр файла admin_panel/zaban.php

Размер файла: 9.12Kb
  1. <?
  2. include('../core/core.php');
  3. include(BASEDIR.INC.'func.php');
  4. include(BASEDIR.INC.'session.php');
  5. include(BASEDIR.INC.'session_user.php');
  6. $mode = htmlspecialchars($_GET['mode']);
  7. include(BASEDIR.INC.'head.php');
  8. show_title('Бан / Разбан');
  9. if (is_admin(array(101, 102, 103))) {
  10. $users = mysql_query('SELECT * FROM users WHERE login = "'.$_COOKIE['login'].'"');
  11. $users = mysql_fetch_assoc($users);
  12. $admin = $users['status'];
  13. if($admin == 101 || $admin == 102){ echo'<div class="razdel">Админ-панель</div>'; }
  14. if($admin == 103 || $admin == 104){ echo'<div class="razdel">Модер-панель</div>'; }
  15. $act = '<img src="'.BASEDIR.''.IMG.'act.png">';
  16. switch ($mode):
  17. case 'index':
  18. echo'<div class="menu">';
  19.  
  20. echo '<div class="form">';
  21. echo 'Логин пользователя:<br />';
  22. echo '<form method="post" action="?mode=edit">';
  23. echo '<input type="text" name="uz" maxlength="20" />';
  24. echo '<input value="Редактировать" type="submit" /></form></div>';
  25. echo'</div>';
  26. echo'<div class="menu">';
  27. echo 'Введите логин пользователя который необходимо отредактировать';
  28. echo'</div>';
  29.  
  30. break;
  31. case 'edit':
  32. $uz = htmlspecialchars($_REQUEST['uz']);
  33. if($uz == !NULL){
  34. $user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
  35. $user = mysql_fetch_assoc($user);
  36. if($user['login'] == !NULL){
  37. if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
  38. echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
  39. $banned = mysql_query('SELECT * FROM `history_ban` WHERE `login` = "'.$uz.'" ORDER BY `id` DESC LIMIT 1 ');
  40. $banned = mysql_fetch_assoc($banned);
  41. echo '<div class="menu">Последний бан: '.$banned['data'].'<hr>';
  42. echo 'Последняя причина: '.$banned['pri'].'<hr>';
  43. echo 'Забанил: '.$banned['status'].'</div>';
  44. $b = mysql_query('SELECT * FROM ban WHERE login = "'.$uz.'"');
  45. $b = mysql_fetch_assoc($b);
  46. if($b['login'] == NULL){
  47. echo '<div class="menu"><form method="post" action="?mode=zaban&uz='.$uz.'">';
  48. echo '<b>Время бана:</b><br /><input name="bantime" /><br />';
  49. echo '<input name="bantype" type="radio" value="min" checked="checked" /> Минут<br />';
  50. echo '<input name="bantype" type="radio" value="chas" /> Часов<br />';
  51. echo '<input name="bantype" type="radio" value="sut" /> Суток<br />';
  52. echo '<b>Причина бана:</b><br />';
  53. echo '<textarea name="reasonban" cols="25" rows="5"></textarea><br />';
  54. echo '<input value="Забанить" type="submit" /></form></div>';
  55.  
  56. echo '<div class="menu">При общем числе нарушений более 10, профиль пользователя удаляется<br />';
  57. echo 'Максимальное время бана 30 суток<br />';
  58. echo 'Внимание! Постарайтесь как можно подробнее описать причину бана</div>';
  59. } else {
  60. echo '<div class="menu"><b><span style="color:#ff0000">Внимание, данный аккаунт заблокирован!</span></b><br />';
  61. $time = $b['time'] - time();
  62. if($time < 0){ $time = 0; } else { $time = $time; }
  63. echo 'До окончания бана: '.formattime($time).'<br /><br />';
  64. echo ''.$act.' <a href="?mode=editban&uz='.$uz.'">Изменить</a><br />';
  65. echo ''.$act.' <a href="?mode=razban&uz='.$uz.'">Разбанить</a></div>';
  66. }
  67. }
  68. } else {echo'Ошибка! Пользователя с данным логином не существует!';}
  69. echo'</div>';
  70. if($admin == 101 || $admin == 102){
  71. $o = mysql_query("SELECT count(*) FROM `history_ban` WHERE login = '".$uz."'");
  72. $r = mysql_fetch_row($o);
  73. $t = $r[0];
  74. if($t >= 10){
  75. echo '<div class="menu"><b><span style="color:#ff0000">Внимание! Пользователь превысил лимит банов</span></b><br />';
  76. echo 'Вы можете удалить этот профиль!<br /><br />';
  77. echo ''.$act.' <b><a href="?mode=deluser&uz='.$uz.'">Удалить профиль</a></b></div>';
  78. }
  79. }
  80. } else {}
  81.  
  82.  
  83. break;
  84. case 'deluser':
  85. echo '<div class="menu">';
  86. if($admin == 101 || $admin == 102){
  87. $uz = htmlspecialchars($_GET['uz']);
  88. $user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
  89. $user = mysql_fetch_assoc($user);
  90. if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
  91. echo'Ошибка! Запрещено удалять админов и модеров сайта!'; } else {
  92. del_user($uz);
  93. echo'Профиль удален полностью!';
  94. }
  95. } else { echo'Доступ закрыт! Вам сюда нельзя!'; }
  96. echo'</div>';
  97. break;
  98. case 'zaban':
  99. echo'<div class="menu">';
  100. $uz = htmlspecialchars($_GET['uz']);
  101. $bantime = abs(round($_POST['bantime'], 1));
  102. $bantype = check($_POST['bantype']);
  103. $reasonban = check($_POST['reasonban']);
  104. if($bantime > 30){if($admin == 101){$bantime = $bantime;}else {$bantime = 30;}} else {$bantime = $bantime; }
  105. if ($bantype == 'min') {$bantotaltime = time() + ($bantime * 60);}
  106. if ($bantype == 'chas') { $bantotaltime = time() + ($bantime * 3600);}
  107. if ($bantype == 'sut') { $bantotaltime = time() + ($bantime * 84600);}
  108. if($bantotaltime > 0){
  109. if (utf_strlen($reasonban) >= 5 && utf_strlen($reasonban) <= 1000) {
  110. mysql_query('INSERT INTO `ban`(`login`,`time`,`ban`) VALUES ("'.$uz.'","'.$bantotaltime.'","'.$reasonban.'")');
  111. $data = date("d.m.Y H:i:s");
  112. mysql_query('INSERT INTO `history_ban`(`login`,`data`,`pri`,`status`) VALUES ("'.$uz.'","'.$data.'","'.$reasonban.'","'.$_COOKIE['login'].'")');
  113. echo'Аккаунт успешно заблокирован!';
  114. } else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
  115. } else {echo'Ошибка! Вы не указали время бана!'; }
  116. echo'</div>';
  117. break;
  118. case 'razban':
  119. echo'<div class="menu">';
  120. $uz = htmlspecialchars($_GET['uz']);
  121. $b = mysql_query('SELECT * FROM ban WHERE login = "'.$uz.'"');
  122. $b = mysql_fetch_assoc($b);
  123. if($b['login'] == !NULL){
  124. mysql_query('DELETE FROM `ban` WHERE `login` = "'.$uz.'"');
  125. echo'Аккаунт успешно разблокирован!';
  126. } else { echo'Ошибка! Данный аккаунт уже разблокирован!'; }
  127. echo'</div>';
  128. break;
  129. case 'editban':
  130. echo'<div class="menu">';
  131. $uz = htmlspecialchars($_GET['uz']);
  132. $user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
  133. $user = mysql_fetch_assoc($user);
  134. if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
  135. echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
  136. $b = mysql_query('SELECT * FROM ban WHERE login = "'.$uz.'"');
  137. $b = mysql_fetch_assoc($b);
  138. if($b['login'] == !NULL){
  139. echo '<div class="menu"><form method="post" action="?mode=changeban&uz='.$uz.'">';
  140. echo '<b>Время бана:</b><br /><input name="bantime" /><br />';
  141. echo '<input name="bantype" type="radio" value="min" checked="checked" /> Минут<br />';
  142. echo '<input name="bantype" type="radio" value="chas" /> Часов<br />';
  143. echo '<input name="bantype" type="radio" value="sut" /> Суток<br />';
  144. echo '<b>Причина бана:</b><br />';
  145. echo '<textarea name="reasonban" cols="25" rows="5">'.$b['ban'].'</textarea><br />';
  146. echo '<input value="Забанить" type="submit" /></form></div>';
  147.  
  148. echo '<div class="menu">При общем числе нарушений более 10, профиль пользователя удаляется<br />';
  149. echo 'Максимальное время бана 30 суток<br />';
  150. echo 'Внимание! Постарайтесь как можно подробнее описать причину бана</div>';
  151. } else {
  152. echo'Ошибка! Данный пользователь не забанен!';
  153. }
  154. }
  155. echo'</div>';
  156. break;
  157. case 'changeban':
  158. echo'<div class="menu">';
  159. $uz = htmlspecialchars($_GET['uz']);
  160. $bantime = abs(round($_POST['bantime'], 1));
  161. $bantype = check($_POST['bantype']);
  162. $reasonban = check($_POST['reasonban']);
  163. if($bantime > 30){ $bantime = 30;} else {$bantime = $bantime; }
  164. if ($bantype == 'min') {$bantotaltime = time() + ($bantime * 60);}
  165. if ($bantype == 'chas') { $bantotaltime = time() + ($bantime * 3600);}
  166. if ($bantype == 'sut') { $bantotaltime = time() + ($bantime * 84600);}
  167. if($bantotaltime > 0){
  168. if (utf_strlen($reasonban) >= 5 && utf_strlen($reasonban) <= 1000) {
  169. mysql_query("UPDATE `history_ban` SET `pri`='$reasonban' WHERE login = '".$uz."';");
  170. mysql_query("UPDATE `ban` SET `time`='$bantotaltime',`ban`='$reasonban' WHERE login = '".$uz."';");
  171. echo'Данные успешно изменены!';
  172. } else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
  173. } else {echo'Ошибка! Вы не указали время бана!'; }
  174. echo'</div>';
  175. break;
  176. default:
  177. header ('location: ?mode=index');
  178. endswitch;
  179. echo'<div class="menu"><a href="/">На главную</a></div>';
  180. } else {header ('location: /index.php?mode=index'); }
  181. include(BASEDIR.INC.'foot.php');
  182. ?>