View file includes/main_forum/rootkit.php

File size: 8.58Kb
  1. <?php
  2. $command=substr($addmsg,1);
  3. //Команда не опознана...
  4. $sysmsg='<b>Команда не опознана ['.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command)))).']</b><br/>';
  5. $access_denied='<b>Недостаточно прав... ['.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command)))).']</b><br/>';
  6. for ($k=1;$k<10;$k++) $command=str_replace(' ',' ',$command);
  7. $command=explode(" ",$command,2);
  8.  
  9. $q=@mysql(DBName,"SELECT `status` FROM `$tableu` WHERE `login` = '".$command[1]."'");
  10. $s=round(mysql_num_rows($q));
  11. $f=mysql_fetch_array($q);
  12. $status_=$f['status'];
  13.  
  14. switch (strtolower($command[0]))
  15. {
  16. case 'noop':
  17. $sysmsg='<b>Пустая команда.</b><br/>';
  18. break;
  19. case 'ban':
  20. //Недостаточно прав...
  21. if ($status<1) {$sysmsg=$access_denied;break;}
  22. //Пользователь не найден
  23. if ($s<1) {$sysmsg='<b>Пользователь '.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command[1])))).' не найден...</b><br/>';break;}
  24. //Конфликт статусов
  25. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  26.  
  27. @mysql(DBName,"UPDATE `$tableu` SET `status` = '-1' WHERE `login` = '".$command[1]."' LIMIT 1");
  28. $sysmsg='<b>Для '.$command[1].' установлен бан (написанеи в форум запрещено).</b><br/>';
  29. break;
  30. case 'user':
  31. //Недостаточно прав...
  32. if ($status<1) {$sysmsg=$access_denied;break;}
  33. //Пользователь не найден
  34. if ($s<1) {$sysmsg='<b>Пользователь '.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command[1])))).' не найден...</b><br/>';break;}
  35. //Конфликт статусов
  36. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  37.  
  38. @mysql(DBName,"UPDATE `$tableu` SET `status` = '0' WHERE `login` = '".$command[1]."' LIMIT 1");
  39. $sysmsg='<b>Для '.$command[1].' установлен статус обычного пользователя (написанеи в форум разрешено).</b><br/>';
  40. break;
  41. case 'moder':
  42. //Недостаточно прав...
  43. if ($status<2) {$sysmsg=$access_denied;break;}
  44. //Пользователь не найден
  45. if ($s<1) {$sysmsg='<b>Пользователь '.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command[1])))).' не найден...</b><br/>';break;}
  46. //Конфликт статусов
  47. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  48.  
  49. @mysql(DBName,"UPDATE `$tableu` SET `status` = '1' WHERE `login` = '".$command[1]."' LIMIT 1");
  50. $sysmsg='<b>Для '.$command[1].' установлен статус "Модератор".</b><br/>';
  51. break;
  52. /*
  53. case 'admin':
  54. //Недостаточно прав...
  55. if ($status<2) {$sysmsg=$access_denied;break;}
  56. //Пользователь не найден
  57. if ($s<1) {$sysmsg='<b>Пользователь '.cyr2utf(str_replace("$","$$",htmlspecialchars(stripslashes($command[1])))).' не найден...</b><br/>';break;}
  58.  
  59. @mysql(DBName,"UPDATE `$tableu` SET `status` = '2' WHERE `login` = '".$command[1]."' LIMIT 1");
  60. $sysmsg='<b>Для '.$command[1].' установлен статус "Администратор".</b><br/>';
  61. break;
  62. */
  63. # Закрытие темы
  64. case 'lock':
  65. # Статус темы
  66. $q=mysql(DBName,"SELECT `status` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic AND `l3` = 0 LIMIT 0, 1");
  67. $f=mysql_fetch_array($q);
  68. $topic_status=$f['status'];
  69. if ($topic_status==1) {$sysmsg='<b>Тема уже закрыта!</b><br/>';include($rootpath."messages.php");}
  70.  
  71. # Логин автора темы
  72. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic AND `l3` = 0");
  73. $s=mysql_num_rows($q)+0;
  74. $f=mysql_fetch_array($q);
  75. $flogin=$f['login'];
  76. if (($status<1)&&($flogin!=$login)) {$sysmsg='<b>Нельзя закрыть чужую тему!</b><br/>';include($rootpath."messages.php");}
  77.  
  78. # Колличество сообщений не автора
  79. $q=mysql(DBName,"SELECT `l3` FROM `$table` WHERE `login` != $login AND `l1` = $razdel AND `l2` = $topic");
  80. $s=mysql_num_rows($q)+0;
  81. if (($status<1)&&($s==0)) {$sysmsg='<b>Темы содержащие только ваши сообщения можно только удалять.</b><br/>';include($rootpath."messages.php");}
  82.  
  83. # Номер последнего сообщения в теме
  84. $q=mysql(DBName,"SELECT `l3` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic ORDER BY `l3` DESC LIMIT 0, 1");
  85. $f=mysql_fetch_array($q);
  86. $message=$f['l3']+1;
  87.  
  88. $sysmsg='<b>Тема закрыта.</b><br/>';
  89. @mysql(DBName,"UPDATE `$table` SET `status` = '1', `time` = '".time()."' WHERE `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  90. @mysql(DBName,"INSERT INTO `$table` ( `l1` , `l2` , `l3` , `status` , `login` , `time` , `text` ) VALUES ( '$razdel', '$topic', '$message', '0', '$login', '".time()."', 'Тема закрыта: ".$command[1]." ".$command[2]." ".$command[3]."')");
  91. include($rootpath."messages.php");
  92. break;
  93. # Открытие темы
  94. case 'unlock':
  95. if ($status<1) {$sysmsg=$access_denied;include($rootpath."messages.php");}
  96.  
  97. # Статус темы
  98. $q=mysql(DBName,"SELECT `status` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic AND `l3` = 0 LIMIT 0, 1");
  99. $f=mysql_fetch_array($q);
  100. $topic_status=$f['status'];
  101. if ($topic_status==0) {$sysmsg='<b>Тема не закрыта!</b><br/>';include($rootpath."messages.php");}
  102.  
  103. # Номер последнего сообщения в теме
  104. $q=mysql(DBName,"SELECT `l3` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic ORDER BY `l3` DESC LIMIT 0, 1");
  105. $f=mysql_fetch_array($q);
  106. $message=$f['l3'];
  107.  
  108. $sysmsg='<b>Тема открыта.</b><br/>';
  109. @mysql(DBName,"UPDATE `$table` SET `status` = '0', `time` = '".time()."' WHERE `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  110. @mysql(DBName,"DELETE FROM `$table` WHERE `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '$message' LIMIT 1");
  111. include($rootpath."messages.php");
  112. break;
  113. # Приклеить тему
  114. case 'fix':
  115. if ($status<2) {$sysmsg=$access_denied;include($rootpath."messages.php");}
  116.  
  117. # Статус темы
  118. $q=mysql(DBName,"SELECT `fixed` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic AND `l3` = 0 LIMIT 0, 1");
  119. $f=mysql_fetch_array($q);
  120. $topic_fixed=$f['fixed'];
  121. if ($topic_fixed==1) {$sysmsg='<b>Тема уже приклеена!</b><br/>';include($rootpath."messages.php");}
  122.  
  123. $sysmsg='<b>Тема приклеена.</b><br/>';
  124. @mysql(DBName,"UPDATE `$table` SET `fixed` = '1', `time` = '".time()."' WHERE `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  125. include($rootpath."messages.php");
  126. break;
  127. # Освободить тему
  128. case 'unfix':
  129. if ($status<2) {$sysmsg=$access_denied;include($rootpath."messages.php");}
  130.  
  131. # Статус темы
  132. $q=mysql(DBName,"SELECT `fixed` FROM `$table` WHERE `l1` = $razdel AND `l2` = $topic AND `l3` = 0 LIMIT 0, 1");
  133. $f=mysql_fetch_array($q);
  134. $topic_fixed=$f['fixed'];
  135. if ($topic_fixed==0) {$sysmsg='<b>Тема не приклеена!</b><br/>';include($rootpath."messages.php");}
  136.  
  137. $sysmsg='<b>Тема освобождена.</b><br/>';
  138. @mysql(DBName,"UPDATE `$table` SET `fixed` = '0', `time` = '".time()."' WHERE `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  139. include($rootpath."messages.php");
  140. break;
  141. case 'del':
  142. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE 1 AND `l1` = $razdel AND `l2` = $topic");
  143. $s=mysql_num_rows($q)+0;
  144. if ($s<1)
  145. {$sysmsg='<b>Тема не существует (уже удалена).</b><br/>';}
  146. else
  147. {
  148. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE 1 AND `l1` = $razdel AND `l2` = $topic AND `l3` = 0");
  149. $f=mysql_fetch_array($q);
  150. $flogin=$f['login'];
  151. if (($status<2)&&($flogin!=$login)) {$sysmsg='<b>Нельзя удалить чужую тему.</b><br/>';include($rootpath."messages.php");}
  152. if (($status<2)&&($flogin==$login)&&(($s>2))) {$sysmsg='<b>Для удаления в теме должно быть не более одного сообщения.</b><br/>';include($rootpath."messages.php");}
  153. $f=mysql_fetch_array($q);
  154. @mysql(DBName,"DELETE FROM `$table` WHERE `l1` = '$razdel' AND `l2` = '$topic'");
  155. $sysmsg='<b>Тема удалена.</b><br/>';
  156. }
  157. $message=0;
  158. $topic=0;
  159. include($rootpath."topics.php");
  160. break;
  161. }
  162. ?>