PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/admin/users.php

https://bitbucket.org/mhell/mhmcr
PHP | 139 lines | 130 code | 3 blank | 6 comment | 33 complexity | 1d84608d792e033286874b90d6f2ac66 MD5 | raw file
  1. <?php
  2. /*
  3. * MhMCR r01
  4. * based on WebMCR 1.5
  5. * by MineHell.ru developers
  6. */
  7. if (!defined('mhmcr'))
  8. die('');
  9. switch (@$_GET['act']) {
  10. case 'search': {
  11. $what = @$_GET['what'];
  12. if (!@$_GET['query']) {
  13. include('template/usersearch.html');
  14. break;
  15. } else {
  16. if (array_key_exists($_GET['what'],$db['users']))
  17. $field = $db['users'][$_GET['what']];
  18. else
  19. $field = $db['users']['username'];
  20. $qi = mysql_query("SELECT * FROM ".$db['tables']['users']." WHERE ".$field." LIKE '%".mysql_real_escape_string($_GET['query'])."%' ORDER BY ".$db['users']['username']." ASC;");
  21. $users = array();
  22. while ($entry = mysql_fetch_assoc($qi)) {
  23. $users[] = $entry;
  24. }
  25. $usercount = count($users);
  26. $pagecount = ceil($usercount/20);
  27. $userblocks = array();
  28. for ($i=0; $i<$pagecount; $i++) {
  29. $block = array();
  30. for ($j=0; $j<=19; $j++) {
  31. $ind = ($i*20)+$j;
  32. if (array_key_exists($ind,$users))
  33. $block[]=$users[$ind];
  34. }
  35. $userblocks[] = $block;
  36. }
  37. include('template/usersearch.html');
  38. break;
  39. }
  40. }
  41. case 'ban': {
  42. if (!@$_POST) {
  43. $userentry = new User(intval($_GET['id']),$db['users']['id']);
  44. if (!$userentry->id()) {
  45. Header('Location: ?page=users');
  46. die('');
  47. }
  48. include('template/userban.html');
  49. break;
  50. } else {
  51. $userentry = new User(intval($_GET['id']),$db['users']['id']);
  52. if (!$userentry->id()) {
  53. Header('Location: ?page=users');
  54. die('');
  55. }
  56. if ($_POST['banip']) {
  57. $days = intval($_POST['days']);
  58. mysql_query("DELETE FROM ".$db['tables']['ipban']." WHERE IP='".$userentry->ip()."'");
  59. mysql_query("INSERT INTO ".$db['tables']['ipban']." (IP,time_start,ban_until) VALUES ('".$userentry->ip()."',NOW(),NOW()+INTERVAL ".$days." DAY);");
  60. }
  61. if ($_POST['banuser']) {
  62. $userentry->changeLvl(0);
  63. }
  64. Header('Location: ?page=users');
  65. }
  66. break;
  67. }
  68. case 'edit': {
  69. if (!@$_POST) {
  70. $userentry = mysql_fetch_assoc(mysql_query("SELECT * FROM ".$db['tables']['users']." WHERE ".$db['users']['id']."='".intval($_GET['id'])."' LIMIT 1;"));
  71. include('template/useredit.html');
  72. break;
  73. } else {
  74. //POSTED!
  75. $userentry = new User(intval($_GET['id']),$db['users']['id']);
  76. if (!$userentry->id()) {
  77. Header('Location: ?page=users');
  78. die('');
  79. }
  80. if (!empty($_POST['username']))
  81. $userentry->changeName($_POST['username']);
  82. if (!empty($_POST['email']))
  83. $userentry->changeEmail($_POST['email']);
  84. if (!empty($_POST['password']))
  85. $userentry->changePassword($_POST['password']);
  86. if (isset($_POST['level']))
  87. $userentry->changeLvl((int) $_POST['level']);
  88. if (empty($_FILES['skin']['tmp_name']) and !empty($_POST['delskin']))
  89. $userentry->deleteSkin();
  90. if (empty($_FILES['cloak']['tmp_name']) and !empty($_POST['delcloak']))
  91. $userentry->deleteCloak();
  92. if (!empty($_FILES['skin']['tmp_name']))
  93. if (POSTGood('skin'))
  94. POSTUpload('skin', $userentry->getSkinFName(), 64, 2);
  95. if (!empty($_FILES['cloak']['tmp_name']))
  96. if (POSTGood('cloak'))
  97. POSTUpload('cloak', $userentry->getCloakFName(), 22, 1.29);
  98. Header('Location: ?page=users');
  99. break;
  100. }
  101. }
  102. case 'del': {
  103. $id = intval($_GET['id']);
  104. $userentry = new User($id,$db['users']['id']);
  105. if (!$userentry->id()) {
  106. Header('Location: ?page=users');
  107. die('');
  108. }
  109. $userentry->deleteSkin();
  110. $userentry->deleteCloak();
  111. mysql_query("DELETE FROM ".$db['tables']['users']." WHERE ".$db['users']['id']."='".$id."' LIMIT 1;");
  112. Header('Location: ?page=users');
  113. break;
  114. }
  115. default: {
  116. $qi = mysql_query("SELECT * FROM ".$db['tables']['users']." ORDER BY ".$db['users']['username']." ASC;");
  117. $users = array();
  118. while ($entry = mysql_fetch_assoc($qi)) {
  119. $users[] = $entry;
  120. }
  121. $usercount = count($users);
  122. $pagecount = ceil($usercount/20);
  123. $userblocks = array();
  124. for ($i=0; $i<$pagecount; $i++) {
  125. $block = array();
  126. for ($j=0; $j<=19; $j++) {
  127. $ind = ($i*20)+$j;
  128. if (array_key_exists($ind,$users))
  129. $block[]=$users[$ind];
  130. }
  131. $userblocks[] = $block;
  132. }
  133. include('template/users.html');
  134. break;
  135. }
  136. }