PageRenderTime 73ms CodeModel.GetById 35ms RepoModel.GetById 1ms app.codeStats 0ms

/inc/admin/admin.accounts.php

https://bitbucket.org/wopkevries/blizzlike-313-website
PHP | 2203 lines | 2142 code | 59 blank | 2 comment | 68 complexity | 74915941a4d9746d00eeadc71adc97f8 MD5 | raw file
Possible License(s): LGPL-2.1

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. if (INCLUDED!==true) { include('index.htm'); exit; }
  3. $USER_LEVEL[4]='Owner';
  4. $usergmt=verifygmt($_SESSION['userid']);
  5. switch ($_REQUEST['t']) {
  6. case "ipban":
  7. if ($_REQUEST['ip']!='' AND $_REQUEST['a']=='remove') {
  8. if (@mysql_query("DELETE FROM ip_banned WHERE ip = '".$_REQUEST['ip']."'")) {
  9. goodborder('Successfuly Removed.'); echo '<br>';
  10. } else {
  11. errborder('Couldn\'t Remove IP.');
  12. }
  13. } else if ($_REQUEST['ip']!='' AND $_REQUEST['a']=='add') {
  14. if (($binIp = ip2long($_POST['ip'])) !== false) {
  15. if ($_POST['banfors']>='0') {
  16. if (alphanum($_POST['banfori'],true,false)==false OR $_POST['banfori']=='' OR $_POST['banfori']=='0') { $_POST['banfori']='1'; }
  17. $_POST['banfori'] = '(UNIX_TIMESTAMP(NOW()) + '.($_POST['banfori'] * $_POST['banfors']).')'; }
  18. else { $_POST['banfori']='-1'; }
  19. if (@mysql_query("INSERT INTO `ip_banned`(ip, bandate, unbandate, bannedby, banreason) VALUES('".long2ip(ip2long($_POST['ip']))."', UNIX_TIMESTAMP(NOW()), ".$_POST['banfori'].",'".$_SESSION['userid']."','".$_POST['reason']."')")) {
  20. goodborder('Successfuly Added.');
  21. echo '<br>';
  22. unset($_POST['ip']);
  23. } else {
  24. errborder('Couldn\'t Add IP.');
  25. }
  26. } else {
  27. errborder('Invalid IP.');
  28. }
  29. }
  30. ?>
  31. <form name="siteadmin" method=post action="index.php?n=admin.accounts&t=ipban&a=add">
  32. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  33. <tr>
  34. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  35. <td width = "100%" bgcolor = "#05374A"><b class = "white">Add IP to Ban List:</b></td>
  36. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  37. </tr>
  38. </table>
  39. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  40. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  41. <table border=0 cellspacing=0 cellpadding=4>
  42. <tr>
  43. <td width=120 align=right>
  44. <font face="arial,helvetica" size=-1><span><b>
  45. IP:</span></b></font> </td>
  46. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  47. <input type=text size=20 maxlength=15 name="ip">
  48. </td><td valign = "top">
  49. </td></tr></table></td>
  50. </tr>
  51. <tr>
  52. <td align=right>
  53. <font face="arial,helvetica" size=-1><span><b>
  54. Ban For:</span></b></font> </td>
  55. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  56. <input name="banfori" type=text style="height:19px; width:20px;" maxlength=2 value="2">
  57. </td><td valign = "top" style="font-size: 13px;">
  58. <select name="banfors">
  59. <option value="-1">Permanently
  60. <option value="60">Minutes
  61. <option value="3600">Hours
  62. <option value="86400">Days
  63. <option value="604888" SELECTED>Weeks
  64. <option value="2592000">Months
  65. <option value="31104000.25">Years
  66. </select>
  67. </td></tr></table></td>
  68. </tr>
  69. <tr>
  70. <td align=right>
  71. <font face="arial,helvetica" size=-1><span><b>
  72. Reason:</span></b></font> </td>
  73. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  74. <input type=text size=40 maxlength=50 name="reason">
  75. </td><td valign = "top">
  76. </td></tr></table></td>
  77. </tr>
  78. </table>
  79. </td></tr></table>
  80. </td></tr></table><br>
  81. <div align=center>
  82. <input type=image SRC="shared/wow-com/images/buttons/button-continue.gif">
  83. </div>
  84. </form><br><br>
  85. <div style='cursor: auto;' id='dataElement'>
  86. <span>
  87. <?php
  88. subtitle('IP Banned:');
  89. $newquery = @mysql_query("SELECT *, fa.displayname as dn FROM `ip_banned` ib LEFT JOIN forum_accounts fa ON ib.bannedby = fa.id_account ORDER BY ip ASC") or die (mysql_error());
  90. if (@mysql_num_rows($newquery)>0) {
  91. metalborderup();
  92. ?>
  93. <table cellpadding='3' cellspacing='0' width=420>
  94. <tbody>
  95. <tr>
  96. <td class='rankingHeader' align='left' nowrap='nowrap'>IP</td>
  97. <td class='rankingHeader' align='left' nowrap='nowrap'>Time</td>
  98. <td class='rankingHeader' align='left' nowrap='nowrap'>By</td>
  99. <td class='rankingHeader' align='left' nowrap='nowrap'>Reason</td>
  100. <td class='rankingHeader' align='center' nowrap='nowrap'>&nbsp;</td>
  101. </tr>
  102. <tr>
  103. <td colspan='8' background='shared/wow-com/images/borders/metalborder/shadow.gif' height=8>
  104. </td>
  105. </tr>
  106. <?php
  107. $res_color=2;
  108. $i=0;
  109. while($rowa = @mysql_fetch_array($newquery)) {
  110. $i++;
  111. if($res_color==1) { $res_color=2; } else { $res_color=1; }
  112. echo "<tr>
  113. <td class='serverStatus".$res_color."' align='left'><span style='color: rgb(102, 13, 2);'>".$rowa['ip']."</td>
  114. <td class='serverStatus".$res_color."' align='left'><span style='color: rgb(102, 13, 2);'>";
  115. if ($rowa['unbandate']<0) { echo 'Permanently'; } else { echo 'Until '.date('d-m-Y \a\t h:i:s A', $rowa['unbandate']); }
  116. echo "</td><td class='serverStatus".$res_color."' align='left'><span style='color: rgb(102, 13, 2);'>".$rowa['dn']."</td>
  117. <td class='serverStatus".$res_color."' align='left'><span style='color: rgb(102, 13, 2);'>".$rowa['banreason']."&nbsp;</td>
  118. <td class='serverStatus".$res_color."' align='center'><a onmouseover='ddrivetip(\"Remove\")' onmouseout='hideddrivetip()' href='index.php?n=admin.accounts&t=ipban&a=remove&ip=".$rowa['ip']."'><img src='new-hp/images/v2/remove.gif'></a></td>
  119. </tr>";
  120. }
  121. ?>
  122. </tbody>
  123. </table>
  124. <?php
  125. metalborderdown();
  126. ?>
  127. </span>
  128. </div>
  129. <?
  130. } else {
  131. goodborder('No IP Banned Exists.');
  132. }
  133. break;
  134. case "settings":
  135. $forceshow=true;
  136. if ($_POST['update']=='settings1') {
  137. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccreg']."' WHERE setting='user_reg_active'");
  138. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccregmail']."' WHERE setting='user_reg_mail'");
  139. if ($query) {
  140. goodborder($_LANG['SUCCESS']['ADMIN_SET']);
  141. $forceshow=false;
  142. } else {
  143. $haserrors .= mysql_error();
  144. }
  145. }
  146. if ($forceshow==true) {
  147. ?>
  148. <form method=post action="index.php?n=admin.accounts&t=settings" name="siteadmin" onsubmit="fas_valid()">
  149. <script language="javascript">
  150. function fas_valid() {
  151. void(document.siteadmin.update.value="settings1");
  152. return true;
  153. }
  154. </script>
  155. <input type=hidden name="update">
  156. <?php if ($haserrors!="") { errborder($haserrors) .'<br>';} ?>
  157. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  158. <tr>
  159. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  160. <td width = "100%" bgcolor = "#05374A"><b class = "white">User Group Settings:</b></td>
  161. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  162. </tr>
  163. </table>
  164. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  165. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  166. <table border=0 cellspacing=0 cellpadding=4>
  167. <tr>
  168. <td align=right>
  169. <font face="arial,helvetica" size=-1><span><b>
  170. Account Registrations:<br>
  171. </span></b></font>
  172. </td>
  173. <td 70% align=left>
  174. <table border=0 cellspacing=0 cellpadding=0>
  175. <tr>
  176. <td><select name="waccreg"><option value="1">Enabled<option value="0">Disabled</select></td>
  177. </tr>
  178. </table>
  179. <script>void(document.siteadmin.waccreg.value='<?php echo $SETTING['USER_REG_ACTIVE']; ?>')</script>
  180. </td>
  181. </tr>
  182. <tr>
  183. <td align=right>
  184. <font face="arial,helvetica" size=-1><span><b>
  185. Account E-Mail Activation:<br>
  186. </span></b></font>
  187. </td>
  188. <td 70% align=left>
  189. <table border=0 cellspacing=0 cellpadding=0>
  190. <tr>
  191. <td><select name="waccregmail"><optgroup label="Requires?"><option value="1">Yes<option value="0">No</select></td>
  192. </tr>
  193. </table>
  194. <script>void(document.siteadmin.waccregmail.value='<?php echo $SETTING['USER_REG_MAIL']; ?>')</script>
  195. </td>
  196. </tr>
  197. </table>
  198. </td></tr></table>
  199. </td></tr></table><br>
  200. <div align=center><input type=image SRC="shared/wow-com/images/buttons/update-button.gif" name="Submit" alt="Update" Width="174" Height="46" Border=0 class="button" taborder=7 ></div>
  201. </form>
  202. <?php
  203. }
  204. break;
  205. case "priviledges":
  206. ?>
  207. <?php
  208. $forceshow=true;
  209. if ($_POST['update']=='settings') {
  210. $langerrgreed = "You're not allowed to change the Setting %ACCPRIVSET%!<br>";
  211. if ($SETTING['DB_BACKUP']>$userlevel AND $_POST['wdbback']<$SETTING['DB_BACKUP']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Database: Backup', $langerrgreed); }
  212. if ($SETTING['DB_RESTORE']>$userlevel AND $_POST['wdbrest']<$SETTING['DB_RESTORE']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Database: Restore', $langerrgreed); }
  213. if ($SETTING['USER_WEB']>$userlevel AND $_POST['waccweb']<$SETTING['USER_WEB']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Website: Manage Settings/Layout', $langerrgreed); }
  214. if ($SETTING['USER_MISC']>$userlevel AND $_POST['waccmisc']<$SETTING['USER_MISC']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Website: Manage Miscellaneous', $langerrgreed); }
  215. if ($SETTING['USER_DONATIONS']>$userlevel AND $_POST['waccdonate']<$SETTING['USER_DONATIONS']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Website: Manage Donations', $langerrgreed); }
  216. if ($SETTING['USER_EMAIL']>$userlevel AND $_POST['waccemail']<$SETTING['USER_EMAIL']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Website: Manage E-mail Settings', $langerrgreed); }
  217. if ($SETTING['UER_FORUMS']>$userlevel AND $_POST['waccforum']<$SETTING['UER_FORUMS']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Forum: Manage Forums', $langerrgreed); }
  218. if ($SETTING['USER_POLL']>$userlevel AND $_POST['wuserpoll']<$SETTING['USER_POLL']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Forum: Start New Polls', $langerrgreed); }
  219. if ($SETTING['USER_ENABLE_SIGNATURE']>$userlevel AND $_POST['wenableusersig']<$SETTING['USER_ENABLE_SIGNATURE']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Forum: Enable Signature', $langerrgreed); }
  220. if ($SETTING['USER_ACCOUNTS']>$userlevel AND $_POST['waccacc']<$SETTING['USER_ACCOUNTS']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Account: Manage Accounts', $langerrgreed); }
  221. if ($SETTING['USER_ENABLE_PM']>$userlevel AND $_POST['wenablepmsend']<$SETTING['USER_ENABLE_PM']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Account: Enable E-mail Sending', $langerrgreed); }
  222. if ($SETTING['USER_ENABLE_EMAIL']>$userlevel AND $_POST['wenablemailsend']<$SETTING['USER_ENABLE_EMAIL']) { $haserrors.=str_replace('%ACCPRIVSET%', 'Account: Enable Private Messages Sending', $langerrgreed); }
  223. if ($_POST['wserverown']=='' AND $_SESSION['userid']==$SETTING['SERVER_OWNER']) {
  224. $haserrors="The Server Owner field cannot be empty.";
  225. } else if ($_SESSION['userid']!=$SETTING['SERVER_OWNER']) {
  226. $_POST['wserverown'] = $SETTING['SERVER_OWNER'];
  227. } else {
  228. $newquery = "SELECT id, gmlevel FROM account a WHERE LOWER(username)=LOWER('".$_POST['wserverown']."')";
  229. $newquery = mysql_query($newquery) OR DIE (mysql_error());
  230. if (mysql_num_rows($newquery)==1) {
  231. $newquery = mysql_fetch_array($newquery);
  232. if ($newquery['gmlevel']<'3') {
  233. $haserrors="To become an Owner the Account Name Priviledge must be first an Administrator.";
  234. } else {
  235. $_POST['wserverown'] = $newquery['id'];
  236. }
  237. } else {
  238. $haserrors="Invalid Account Name.";
  239. }
  240. }
  241. if ($haserrors=="") {
  242. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wserverown']."' WHERE setting='server_owner'");
  243. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wdbback']."' WHERE setting='db_backup'");
  244. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wdbrest']."' WHERE setting='db_restore'");
  245. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccweb']."' WHERE setting='user_web'");
  246. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccmisc']."' WHERE setting='user_misc'");
  247. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccdonate']."' WHERE setting='user_donations'");
  248. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccemail']."' WHERE setting='user_email'");
  249. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccforum']."' WHERE setting='user_forums'");
  250. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wuserpoll']."' WHERE setting='user_poll'");
  251. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wenableusersig']."' WHERE setting='user_enable_signature'");
  252. $query=mysql_query("UPDATE web_settings SET value='".$_POST['waccacc']."' WHERE setting='user_accounts'");
  253. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wenablepmsend']."' WHERE setting='user_enable_pm'");
  254. $query=mysql_query("UPDATE web_settings SET value='".$_POST['wenablemailsend']."' WHERE setting='user_enable_email'");
  255. if ($query) {
  256. goodborder($_LANG['SUCCESS']['ADMIN_SET']);
  257. $forceshow=false;
  258. } else {
  259. $haserrors .= mysql_error();
  260. }
  261. }
  262. }
  263. if ($forceshow==true) {
  264. ?>
  265. <form method=post action="index.php?n=admin.accounts&t=priviledges" name="siteadmin" onsubmit="fas_valid()">
  266. <script language="javascript">
  267. function fas_valid() {
  268. void(document.siteadmin.update.value="settings");
  269. return true;
  270. }
  271. </script>
  272. <input type=hidden name="update">
  273. <?php if ($haserrors!="") { errborder($haserrors) .'<br>';} ?>
  274. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  275. <tr>
  276. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  277. <td width = "100%" bgcolor = "#05374A"><b class = "white">User Group Priviledges:</b></td>
  278. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  279. </tr>
  280. </table>
  281. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  282. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  283. <table border=0 cellspacing=0 cellpadding=4>
  284. <tr>
  285. <td width=250 align=right>
  286. <font face="arial,helvetica" size=-1><span><b>
  287. Server Owner (Account Name): </span></b></font> </td>
  288. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  289. <input <? if ($userlevel!=4) { echo 'readonly'; } ?> type=text name="wserverown" value="">
  290. </td><td valign = "top">
  291. </td></tr></table></td>
  292. </tr>
  293. </table>
  294. </td></tr></table>
  295. </td></tr></table><br>
  296. <?php
  297. function setminmaxlvl($sett=1, $start=1) {
  298. if ($GLOBALS['userlevel']<$sett) {
  299. echo '<option value='.$sett.'>'.$GLOBALS['USER_LEVEL'][$sett];
  300. } else {
  301. for ($i=$start;$i<=$GLOBALS['userlevel'];$i++) {
  302. echo '<option value='.$i.'>'.$GLOBALS['USER_LEVEL'][$i];
  303. }
  304. }
  305. }
  306. ?>
  307. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  308. <tr>
  309. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  310. <td width = "100%" bgcolor = "#05374A"><b class = "white">Database:</b></td>
  311. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  312. </tr>
  313. </table>
  314. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  315. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  316. <table border=0 cellspacing=0 cellpadding=4>
  317. <tr>
  318. <td width=250 align=right>
  319. <font face="arial,helvetica" size=-1><span><b>
  320. Backup: </span></b></font> </td>
  321. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  322. <select name="wdbback">
  323. <?
  324. setminmaxlvl($SETTING['DB_BACKUP']);
  325. ?>
  326. </select>
  327. </td><td valign = "top">
  328. </td></tr></table></td>
  329. </tr>
  330. <tr>
  331. <td align=right>
  332. <font face="arial,helvetica" size=-1><span><b>
  333. Restore: </span></b></font> </td>
  334. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  335. <select name="wdbrest">
  336. <?
  337. setminmaxlvl($SETTING['DB_RESTORE']);
  338. ?>
  339. </select>
  340. </td><td valign = "top">
  341. </td></tr></table></td>
  342. </tr>
  343. </table>
  344. </td></tr></table>
  345. </td></tr></table><br>
  346. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  347. <tr>
  348. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  349. <td width = "100%" bgcolor = "#05374A"><b class = "white">Website:</b></td>
  350. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  351. </tr>
  352. </table>
  353. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  354. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  355. <table border=0 cellspacing=0 cellpadding=4>
  356. <tr>
  357. <td width=250 align=right>
  358. <font face="arial,helvetica" size=-1><span><b>
  359. Manage Website Settings/Layout: </span></b></font> </td>
  360. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  361. <select name="waccweb">
  362. <?
  363. setminmaxlvl($SETTING['USER_WEB']);
  364. ?>
  365. </select>
  366. </td><td valign = "top">
  367. </td></tr></table></td>
  368. </tr>
  369. <tr>
  370. <td align=right>
  371. <font face="arial,helvetica" size=-1><span><b>
  372. Manage Miscellaneous: </span></b></font> </td>
  373. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  374. <select name="waccmisc">
  375. <?
  376. setminmaxlvl($SETTING['USER_MISC']);
  377. ?>
  378. </select>
  379. </td><td valign = "top">
  380. </td></tr></table></td>
  381. </tr>
  382. <tr>
  383. <td align=right>
  384. <font face="arial,helvetica" size=-1><span><b>
  385. Manage Donations: </span></b></font> </td>
  386. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  387. <select name="waccdonate">
  388. <?
  389. setminmaxlvl($SETTING['USER_DONATIONS']);
  390. ?>
  391. </select>
  392. </td><td valign = "top">
  393. </td></tr></table></td>
  394. </tr>
  395. <tr>
  396. <td align=right>
  397. <font face="arial,helvetica" size=-1><span><b>
  398. Manage E-mail Settings: </span></b></font> </td>
  399. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  400. <select name="waccemail">
  401. <?
  402. setminmaxlvl($SETTING['USER_EMAIL']);
  403. ?>
  404. </select>
  405. </td><td valign = "top">
  406. </td></tr></table></td>
  407. </tr>
  408. </table>
  409. </td></tr></table>
  410. </td></tr></table><br>
  411. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  412. <tr>
  413. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  414. <td width = "100%" bgcolor = "#05374A"><b class = "white">Forum:</b></td>
  415. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  416. </tr>
  417. </table>
  418. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  419. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  420. <table border=0 cellspacing=0 cellpadding=4>
  421. <tr>
  422. <td align=right>
  423. <font face="arial,helvetica" size=-1><span><b>
  424. Manage Forums: </span></b></font> </td>
  425. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  426. <select name="waccforum">
  427. <?
  428. setminmaxlvl($SETTING['USER_FORUMS']);
  429. ?>
  430. </select>
  431. </td><td valign = "top">
  432. </td></tr></table></td>
  433. </tr>
  434. <tr>
  435. <td width=250 align=right>
  436. <font face="arial,helvetica" size=-1><span><b>
  437. Enable Signature For: </span></b></font> </td>
  438. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  439. <select name="wenableusersig">
  440. <?
  441. setminmaxlvl($SETTING['USER_ENABLE_SIGNATURE'], 0);
  442. ?>
  443. </select>
  444. </td><td valign = "top">
  445. </td></tr></table></td>
  446. </tr>
  447. <tr>
  448. <td align=right>
  449. <font face="arial,helvetica" size=-1><span><b>
  450. Start New Polls: </span></b></font> </td>
  451. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  452. <select name="wuserpoll">
  453. <?
  454. setminmaxlvl($SETTING['USER_POLL'], 0);
  455. ?>
  456. </select>
  457. </td><td valign = "top">
  458. </td></tr></table></td>
  459. </tr>
  460. </table>
  461. </td></tr></table>
  462. </td></tr></table><br>
  463. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  464. <tr>
  465. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  466. <td width = "100%" bgcolor = "#05374A"><b class = "white">Account:</b></td>
  467. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  468. </tr>
  469. </table>
  470. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  471. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  472. <table border=0 cellspacing=0 cellpadding=4>
  473. <tr>
  474. <td align=right>
  475. <font face="arial,helvetica" size=-1><span><b>
  476. Manage Accounts: </span></b></font> </td>
  477. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  478. <select name="waccacc">
  479. <?
  480. setminmaxlvl($SETTING['USER_ACCOUNTS']);
  481. ?>
  482. </select>
  483. </td><td valign = "top">
  484. </td></tr></table></td>
  485. </tr>
  486. <tr>
  487. <td width=250 align=right>
  488. <font face="arial,helvetica" size=-1><span><b>
  489. Enable E-mail Sending For: </span></b></font> </td>
  490. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  491. <select name="wenablemailsend">
  492. <?
  493. setminmaxlvl($SETTING['USER_ENABLE_PM'],0);
  494. ?>
  495. </select>
  496. </td><td valign = "top">
  497. </td></tr></table></td>
  498. </tr>
  499. <tr>
  500. <td align=right>
  501. <font face="arial,helvetica" size=-1><span><b>
  502. Enable Private Messages Sending For: </span></b></font> </td>
  503. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  504. <select name="wenablepmsend">
  505. <?
  506. setminmaxlvl($SETTING['USER_ENABLE_EMAIL'],0);
  507. ?>
  508. </select>
  509. </td><td valign = "top">
  510. </td></tr></table></td>
  511. </tr>
  512. </table>
  513. </td></tr></table>
  514. </td></tr></table><br>
  515. <script language="javascript">
  516. void(document.siteadmin.wserverown.value='<?php
  517. $newquery = mysql_fetch_array(mysql_query("SELECT username FROM account a WHERE id='".$SETTING['SERVER_OWNER']."'"));
  518. echo $newquery[0];?>');
  519. void(document.siteadmin.wdbback.value='<?php echo $SETTING['DB_BACKUP'];?>');
  520. void(document.siteadmin.wdbrest.value='<?php echo $SETTING['DB_RESTORE'];?>');
  521. void(document.siteadmin.waccweb.value='<?php echo $SETTING['USER_WEB'];?>');
  522. void(document.siteadmin.waccforum.value='<?php echo $SETTING['USER_FORUMS'];?>');
  523. void(document.siteadmin.waccacc.value='<?php echo $SETTING['USER_ACCOUNTS'];?>');
  524. void(document.siteadmin.waccmisc.value='<?php echo $SETTING['USER_MISC'];?>');
  525. void(document.siteadmin.waccdonate.value='<?php echo $SETTING['USER_DONATIONS'];?>');
  526. void(document.siteadmin.waccemail.value='<?php echo $SETTING['USER_EMAIL'];?>');
  527. void(document.siteadmin.wuserpoll.value='<?php echo $SETTING['USER_POLL'];?>');
  528. void(document.siteadmin.wenablepmsend.value='<?php echo $SETTING['USER_ENABLE_EMAIL'];?>');
  529. void(document.siteadmin.wenablemailsend.value='<?php echo $SETTING['USER_ENABLE_PM'];?>');
  530. void(document.siteadmin.wenableusersig.value='<?php echo $SETTING['USER_ENABLE_SIGNATURE'];?>');
  531. </script>
  532. <div align=center><input type=image SRC="shared/wow-com/images/buttons/update-button.gif" name="Submit" alt="Update" Width="174" Height="46" Border=0 class="button" taborder=7 ></div>
  533. </form>
  534. <?php
  535. }
  536. break;
  537. case 'cleanup':
  538. $forceshow=true;
  539. if ($_POST['update']=='delete') {
  540. if ($_POST['acctype']=='normal') {
  541. $newquery = "SELECT a.id as id FROM account a LEFT JOIN (`forum_accounts` fa) ON fa.id_account = a.id WHERE a.id!='".$SETTING['SERVER_OWNER']."' AND a.gmlevel='0' AND
  542. (DATEDIFF(NOW(), ".$_POST['llogo'].") >=".round($_POST['llogd'] * $_POST['llogt'], 0)." OR ".$_POST['llogo']."='0000-00-00 00:00:00')";
  543. } else if ($_POST['acctype']=='ghost') {
  544. $newquery = "SELECT id_account as id FROM forum_accounts WHERE id_account NOT IN (SELECT id FROM account)";
  545. }
  546. $newquery = mysql_query($newquery) OR DIE (mysql_error());
  547. while($rowa = mysql_fetch_array($newquery)) {
  548. if ($_POST['acctype']=='normal') {
  549. $queryzed = mysql_query("SELECT name, rs.dbhost as rsdbhost, rs.dbport as rsdbport,rs.dbuser as rsdbuser,
  550. rs.dbpass as rsdbpass,rs.dbname as rsdbname FROM `realmlist` r LEFT JOIN (realm_settings rs) ON r.id = rs.id_realm
  551. GROUP BY r.id ORDER BY r.name", $MySQL_CON) OR DIE(mysql_error());
  552. while($rowo = mysql_fetch_array($queryzed)) {
  553. $newconb = mysql_connect($rowo['rsdbhost'].':'.$rowo['rsdbport'], $rowo['rsdbuser'], $rowo['rsdbpass']);
  554. $newdbb = mysql_select_db ($rowo['rsdbname'], $newconb) OR DIE(mysql_error());
  555. $cleanacc = mysql_query('DELETE FROM `characters` WHERE `account`="'.$rowa['id'].'"', $newconb);
  556. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  557. $cleanacc = mysql_query('DELETE FROM `character_inventory` WHERE guid NOT IN (SELECT guid FROM `characters`) AND guid!=0', $newconb);
  558. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  559. $cleanacc = mysql_query('DELETE FROM `character_inventory` WHERE item NOT IN (SELECT guid FROM `item_instance`) AND item!=0', $newconb);
  560. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  561. $cleanacc = mysql_query('DELETE FROM `item_instance` WHERE guid NOT IN(SELECT item FROM `character_inventory`) AND guid NOT IN(SELECT id FROM mail) AND guid NOT IN(SELECT itemguid FROM `auctionhouse`)', $newconb);
  562. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  563. $cleanacc = mysql_query('DELETE FROM `mail` WHERE id NOT IN (SELECT guid FROM `item_instance`) AND id!=0', $newconb);
  564. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  565. $cleanacc = mysql_query('DELETE FROM `auctionhouse` WHERE itemguid NOT IN (SELECT guid FROM `item_instance`) AND itemguid!=0;', $newconb);
  566. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  567. if ($haserrors!='') { break; }
  568. }
  569. mysql_select_db ($MySQL_Set['DBREALM'], $MySQL_CON);
  570. }
  571. if ($haserrors!='') { break; }
  572. $cleanacc = mysql_query('DELETE FROM `forum_accounts` WHERE id_account="'.$rowa['id'].'"', $MySQL_CON);
  573. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  574. if ($_POST['accconv']=='0' OR $_POST['acctype']=='ghost') {
  575. $cleanacc = mysql_query('UPDATE forum_posts SET id_account_edit=0 WHERE id_account="'.$rowa['id'].'"', $MySQL_CON);
  576. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  577. $cleanacc = mysql_query('DELETE FROM `forum_posts` WHERE `id_account`="'.$rowa['id'].'"', $MySQL_CON);
  578. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  579. $cleanacc = mysql_query('DELETE FROM `forum_topics` WHERE id_topic NOT IN (SELECT id_topic FROM forum_posts)', $MySQL_CON);
  580. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  581. $cleanacc = mysql_query('DELETE FROM `web_donations` WHERE id_account="'.$rowa['id'].'"', $MySQL_CON);
  582. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  583. $cleanacc = mysql_query('DELETE FROM `forum_rel_account_polls` WHERE `id_account`="'.$rowa['id'].'"', $MySQL_CON);
  584. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  585. $cleanacc = mysql_query('DELETE FROM `forum_rel_topics_polls` WHERE id_topic NOT IN (SELECT id_topic FROM forum_topics)', $MySQL_CON);
  586. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  587. } else if ($_POST['accconv']=='1') {
  588. $cleanacc = mysql_query('INSERT INTO `forum_accounts`(id_account, displayname) VALUES("'.$rowa['id_account'].'", "'.$rowa['displayname'].'")', $MySQL_CON);
  589. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  590. }
  591. $cleanacc = mysql_query('DELETE FROM `forum_pm` WHERE `id_account_from`="'.$rowa['id'].'" OR `id_account_to`="'.$rowa['id'].'"', $MySQL_CON);
  592. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  593. $cleanacc = mysql_query('DELETE FROM `forum_reports` WHERE `id_account`="'.$rowa['id'].'"', $MySQL_CON);
  594. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  595. $cleanacc = mysql_query('DELETE FROM `forum_views` WHERE `id_account`="'.$rowa['id'].'"', $MySQL_CON);
  596. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  597. $cleanacc = mysql_query('DELETE FROM `web_online` WHERE `id`="'.$rowa['id'].'"', $MySQL_CON);
  598. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  599. $cleanacc = mysql_query('DELETE FROM `account_banned` WHERE id="'.$rowa['id'].'"', $MySQL_CON);
  600. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  601. $cleanacc = mysql_query('DELETE FROM `account` WHERE id="'.$rowa['id'].'"', $MySQL_CON);
  602. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  603. if ($haserrors!='') { break; }
  604. }
  605. if ($haserrors=='') {
  606. $forceshow=false;
  607. goodborder('A total of '.mysql_num_rows($newquery).' accounts were successfuly deleted!<META HTTP-EQUIV=REFRESH CONTENT="2; URL=?n=admin.accounts">');
  608. } else {
  609. $forceshow=true;
  610. errborder($haserrors);
  611. }
  612. }
  613. if ($forceshow==true) {
  614. ?>
  615. <form name="siteadmin" method=post action="index.php?n=admin.accounts&t=cleanup">
  616. <input type=hidden name="update">
  617. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  618. <tr>
  619. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  620. <td width = "100%" bgcolor = "#05374A"><b class = "white">Search Normal User Accounts For Clean Up:</b></td>
  621. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  622. </tr>
  623. </table>
  624. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  625. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  626. <table border=0 cellspacing=0 cellpadding=4>
  627. <tr>
  628. <td width=180 align=right>
  629. <font face="arial,helvetica" size=-1><span><b>
  630. Account Type:</span></b></font></td>
  631. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  632. <select name="acctype" Onchange="document.siteadmin.submit();">
  633. <option value="normal">Normal
  634. <option value="ghost">Ghost
  635. </select>
  636. </td><td valign = "top">
  637. </td></tr></table></td>
  638. </tr>
  639. <?php if ($_POST['acctype']=='normal' OR $_SERVER['REQUEST_METHOD']!='POST') { ?>
  640. <tr>
  641. <td align=right>
  642. <font face="arial,helvetica" size=-1><span><b>
  643. Last Login On:</span></b></font> </td>
  644. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  645. <select name="llogo">
  646. <option value="a.last_login">Game Server
  647. <option value="fa.lastlogin">Website
  648. </select>
  649. </td><td valign = "top" style="font-size: 13px;">
  650. </td></tr></table></td>
  651. </tr>
  652. <tr>
  653. <td align=right>
  654. <font face="arial,helvetica" size=-1><span><b>
  655. Last Login Was:</span></b></font> </td>
  656. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  657. <input name="llogd" type=text style="height:19px; width:20px;" maxlength=2 value="2">
  658. </td><td valign = "top" style="font-size: 13px;">
  659. <select name="llogt">
  660. <option value="1">Days Ago
  661. <option value="7">Weeks Ago
  662. <option value="30" SELECTED>Months Ago
  663. <option value="365.25">Years Ago
  664. </select> or higher.
  665. </td></tr></table></td>
  666. </tr>
  667. <tr>
  668. <td align=right>
  669. <font face="arial,helvetica" size=-1><span><b>
  670. Convert To Ghost Account:</span></b></font> </td>
  671. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  672. <select name="accconv" onchange="vallog()">
  673. <option value="1">Yes
  674. <option value="0" SELECTED>No
  675. </select>
  676. </td><td valign = "top" style="font-size: 13px;">
  677. </td></tr></table></td>
  678. </tr>
  679. <?php } ?>
  680. </table>
  681. </td></tr></table>
  682. </td></tr></table><br>
  683. <div align=center><input onclick='javascript:document.siteadmin.update.value="search";' type=image SRC="shared/wow-com/images/buttons/button-continue.gif"></div>
  684. </form>
  685. <?
  686. if ($_POST['update']=='search') {
  687. if (alphanum($_POST['llogd'],true,false)==false OR $_POST['llogd']=='' OR $_POST['llogd']=='0') { $_POST['llogd']='1'; }
  688. parchdown();
  689. parchup(true);
  690. if ($_POST['acctype']=='normal') {
  691. $newquery = "SELECT a.id as id FROM account a LEFT JOIN (`forum_accounts` fa) ON fa.id_account = a.id WHERE a.id!='".$SETTING['SERVER_OWNER']."' AND a.gmlevel='0' AND
  692. (DATEDIFF(NOW(), ".$_POST['llogo'].") >=".round($_POST['llogd'] * $_POST['llogt'], 0)." OR ".$_POST['llogo']."='0000-00-00 00:00:00')";
  693. } else {
  694. $newquery = "SELECT id_account FROM forum_accounts WHERE id_account NOT IN (SELECT id FROM account)";
  695. }
  696. $newquery = mysql_query($newquery) OR DIE (mysql_error());
  697. if (mysql_num_rows($newquery)>0) {
  698. echo '<b>Found <font color=green>' . mysql_num_rows($newquery) . '</font> Accounts ready for the Delete Process.</b><br><br>';
  699. ?>
  700. <font color=red>Before pressing "Continue", make sure all realms databases are On-Line!</font><br><br>
  701. <div align=center><input onclick='javascript:document.siteadmin.update.value="delete";document.siteadmin.submit();' type=image SRC="shared/wow-com/images/buttons/button-continue.gif"></div>
  702. <?php
  703. } else {
  704. echo '<b>No Accounts were Found with those requirements.</b><br>';
  705. }
  706. }
  707. ?>
  708. <script>
  709. document.siteadmin.acctype.value='<?php echo $_POST['acctype']; ?>';
  710. <?php if ($_POST['acctype']=='normal' OR $_SERVER['REQUEST_METHOD']!='POST') { ?>
  711. document.siteadmin.llogd.value='<?php echo $_POST['llogd']; ?>';
  712. document.siteadmin.llogt.value='<?php echo $_POST['llogt']; ?>';
  713. document.siteadmin.llogo.value='<?php echo $_POST['llogo']; ?>';
  714. document.siteadmin.accconv.value='<?php echo $_POST['accconv']; ?>';
  715. document.siteadmin.accact.value='<?php echo $_POST['accact']; ?>';
  716. document.siteadmin.accban.value='<?php echo $_POST['accban']; ?>';
  717. <? } ?>
  718. </script>
  719. <?php
  720. }
  721. break;
  722. case "manage":
  723. default:
  724. if ($_REQUEST['id'] =='') {
  725. if ($_REQUEST['by']=='') { $_REQUEST['by']='a.`username`'; }
  726. ?>
  727. <table cellspacing = "0" cellpadding = "0" border = "0" width = "95%">
  728. <tr>
  729. <td width = "24"><img src = "shared/wow-com/images/headers/subheader/subheader-left-sword.gif" width = "24" height = "20"></td>
  730. <td width = "100%" bgcolor = "#05374A"><b class = "white">Search For Accounts:</b></td>
  731. <td width = "10"><img src = "shared/wow-com/images/headers/subheader/subheader-right.gif" width = "10" height = "20"></td>
  732. </tr>
  733. </table>
  734. <table width = 95% style = "border-width: 1px; border-style: dotted; border-color: #928058;"><tr><td>
  735. <table width = 100% style = "border-width: 1px; border-style: solid; border-color: black; background-image: url('new-hp/images/layout/parch-light2.jpg');"><tr><td>
  736. <form name="siteadmin" Onsubmit="return false;">
  737. <table border=0 cellspacing=0 cellpadding=4>
  738. <tr>
  739. <td width=170 align=right>
  740. <font face="arial,helvetica" size=-1><span><b>
  741. Account <select name="by">
  742. <option value="fa.`id_account`" SELECTED>ID
  743. <option value="a.`username`" SELECTED>Name
  744. <option value="fa.`displayname`">Display Name
  745. <option value="a.`email`">E-mail
  746. </select>:</span></b></font> </td>
  747. <td align=left><table border=0 cellspacing=0 cellpadding=0><tr><td>
  748. <input type=text size=20 name="s" value="<? echo $_REQUEST['s']; ?>">
  749. </td><td valign = "top">
  750. </td></tr></table></td>
  751. </tr>
  752. </table>
  753. </form>
  754. </td></tr></table>
  755. </td></tr></table><br>
  756. <div align=center>
  757. <script language="javascript">
  758. document.siteadmin.by.value='<?php echo $_REQUEST['by']; ?>';
  759. document.siteadmin.s.value='<?php echo $_REQUEST['s']; ?>';
  760. function sorter(vabym, vas) {
  761. window.location='index.php?n=admin.accounts&t=manage&by=' + vabym + '&s=' + vas;
  762. }
  763. </script>
  764. <a href="javascript:sorter(document.siteadmin.by.value, document.siteadmin.s.value)"><img type=image SRC="shared/wow-com/images/buttons/button-continue.gif"></a>
  765. </div>
  766. <?
  767. parchdown();
  768. parchup(true);
  769. $ppag=50;
  770. $newquery = "SELECT fa.activation as activation, a.username as username, fa.displayname as dn, fa.id_account as id, a.gmlevel as gmlevel,
  771. fa.enableemail as enableemail, fa.location as location, fa.city as city, fa.showlocation as showlocation,
  772. DATE_FORMAT(CONVERT_TZ(fa.`lastlogin`, '".$GMT[$SETTING['WEB_GMT']][0]."', '".$usergmt."'), '%d-%m-%Y at %h:%i %p') as lastlogin,
  773. DATE_FORMAT(CONVERT_TZ(a.`joindate`, '".$GMT[$SETTING['WEB_GMT']][0]."', '".$usergmt."'), '%d-%m-%Y at %h:%i %p') as joindate,
  774. DATE_FORMAT(CONVERT_TZ(a.`last_login`, '".$GMT[$SETTING['WEB_GMT']][0]."', '".$usergmt."'), '%d-%m-%Y at %h:%i %p') as last_login
  775. FROM forum_accounts fa
  776. LEFT JOIN (account a) ON fa.id_account = a.id
  777. WHERE (a.gmlevel < '".$userlevel."' OR a.id = '".$_SESSION['userid']."' OR fa.id_account NOT IN (SELECT id FROM `account`))";
  778. if ($_REQUEST['s']!='') { $newquery .= " AND ".$_REQUEST['by']." LIKE '%".$_REQUEST['s']."%'"; }
  779. $newquery .= " GROUP BY a.id ORDER BY ".$_REQUEST['by']." ASC";
  780. $newquery2 = mysql_query($newquery) or die (mysql_error());
  781. if (alphanum($_REQUEST['p'],true,false)==false OR $_REQUEST['p']=='') { $_REQUEST['p']=1;}
  782. $newquery .= " LIMIT ".(($_REQUEST['p'] - 1) * $ppag).",".$ppag."";
  783. $newquery = mysql_query($newquery) or die (mysql_error());
  784. $pages = '<div style="width: 400;" align=center><table><tr>'. pages($_REQUEST['p'], mysql_num_rows($newquery2), $ppag, "index.php?n=admin.accounts&t=manage&by=".$_REQUEST['by']."&s=".$_REQUEST['s'], ' | ', true, 0, false).'</tr></table></div>';
  785. subtitle('User Accounts ('.mysql_num_rows($newquery2).'):');
  786. echo $pages;
  787. metalborderup();
  788. ?>
  789. <table cellpadding='3' cellspacing='0' width=450>
  790. <tr>
  791. <td class='rankingHeader' align='left' nowrap='nowrap'>#</td>
  792. <td class='rankingHeader' align='left' nowrap='nowrap'>Account Name</td>
  793. <td class='rankingHeader' align='left' nowrap='nowrap'>Characters</td>
  794. <td class='rankingHeader' align='left' nowrap='nowrap'>Log</td>
  795. </tr>
  796. <tr>
  797. <td colspan='7' background='shared/wow-com/images/borders/metalborder/shadow.gif' height=8>
  798. </td>
  799. </tr>
  800. <style>
  801. span.white { font-size: 11px; color: white; }
  802. </style>
  803. <?php
  804. if (mysql_num_rows($newquery)>0) {
  805. $res_color=2;
  806. $tt='';
  807. $i=0;
  808. while($rowa = mysql_fetch_array($newquery)) {
  809. if($res_color==1) { $res_color=2; } else { $res_color=1; }
  810. $queryzed = mysql_query("SELECT name, rs.dbhost as rsdbhost, rs.dbport as rsdbport,rs.dbuser as rsdbuser,
  811. rs.dbpass as rsdbpass,rs.dbname as rsdbname FROM `realmlist` r LEFT JOIN (realm_settings rs) ON r.id = rs.id_realm
  812. GROUP BY r.id ORDER BY r.name", $MySQL_CON) OR DIE(mysql_error());
  813. while($rowo = @mysql_fetch_array($queryzed)) {
  814. $newconb = mysql_connect($rowo['rsdbhost'].':'.$rowo['rsdbport'], $rowo['rsdbuser'], $rowo['rsdbpass'])OR DIE(mysql_error());
  815. $newdbb = mysql_select_db ($rowo['rsdbname'], $newconb) OR DIE(mysql_error());
  816. $newqueryz = mysql_query("SELECT name, race, class, data FROM `characters` WHERE `account`='".$rowa['id']."' ORDER BY name ASC", $newconb);
  817. $tt.='<table><tr><td colspan=4 align=center NOWRAP><span class=white><b>'.$rowo['name'].':</span></td></tr>';
  818. while ($rowz = @mysql_fetch_array($newqueryz)) {
  819. $i++;
  820. $rowz['data'] = explode(' ',$rowz['data']);
  821. $char_gender = dechex($rowz['data'][36]);
  822. $char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
  823. $char_gender = $char_gender{3};
  824. $tt.='<tr><td NOWRAP><span class=white>'.$rowz['name'].'</span><td></td><img src=new-hp/images/picons/'.$rowz['race'].'-'.$char_gender.'.gif><td></td><img src=new-hp/images/picons/'.$rowz['class'].'.gif></td><td NOWRAP><span class=white>Lvl. '.$rowz['data'][34].'</span></td></tr>';
  825. }
  826. $tt.='</tr></table>';
  827. mysql_select_db ($MySQL_Set['DBREALM'], $MySQL_CON) OR DIE (mysql_error());
  828. }
  829. if ($rowa['id']==$SETTING['SERVER_OWNER']) { $rowa['gmlevel']=4; }
  830. if ($rowa['username']!='') {
  831. echo "<tr>
  832. <td class='serverStatus".$res_color."'><span style='color: rgb(35, 67, 3);'>".$rowa['id']."</td>
  833. <td class='serverStatus".$res_color."'><span style='color: rgb(35, 67, 3);'><a href='index.php?n=admin.accounts&t=manage&id=".$rowa['id']."'>".
  834. $rowa['username']."</a>";
  835. $banquery=mysql_num_rows(mysql_query("SELECT id FROM account_banned WHERE id='".$rowa['id']."' AND active=1", $MySQL_CON));
  836. if ($rowa['activation']!='' AND $banquery=='1') { echo " <span onmouseover=\"ddrivetip('Status: Not Activated')\" onmouseout=\"hideddrivetip()\" style='-moz-border-radius:10px;background:black; color:orange'><b>&nbsp;@&nbsp;</b></span>"; }
  837. else if ($banquery=='1') { echo " <span onmouseover=\"ddrivetip('Status: Banned')\" onmouseout=\"hideddrivetip()\" style='-moz-border-radius:10px;background:black; color:red'><b>&nbsp;?&nbsp;</b></span>"; }
  838. echo "<br>".$rowa['dn']."</span>
  839. <br><span style='color: rgb(102, 13, 2);'>".$USER_LEVEL[$rowa['gmlevel']]."</span></td>
  840. <td class='serverStatus".$res_color."' align='center'><span";
  841. if ($i>0) { echo " onmouseover=\"ddrivetip('".$tt."')\" onmouseout=\"hideddrivetip()\""; } else { $i = "None"; }
  842. echo " style='color: rgb(35, 67, 3);'>".$i."</span></td>
  843. <td class='serverStatus".$res_color."' align='left'><span style='color: rgb(102, 13, 2);'>Created: ".$rowa['joindate']."<br>
  844. Game Server: ";
  845. if ($rowa['last_login']=='') { echo 'Never'; } else { echo $rowa['last_login']; }
  846. echo "<br>Website: ";
  847. if ($rowa['lastlogin']=='') { echo 'Never'; } else { echo $rowa['lastlogin']; }
  848. echo "</small></td>
  849. </tr>";
  850. } else {
  851. echo "<tr>
  852. <td class='serverStatus".$res_color."'><span style='color: rgb(35, 67, 3);'>".$rowa['id']."</td>
  853. </td>
  854. <td class='serverStatus".$res_color."'><span style='color: rgb(102, 13, 2);'><a href='index.php?n=admin.accounts&t=manage&id=".$rowa['id']."'>".$rowa['dn']."</a></td>
  855. </td>
  856. <td colspan=3 class='serverStatus".$res_color."'><span style='color: rgb(35, 67, 3);'>Ghost Account</td>
  857. </td>
  858. </tr>";
  859. }
  860. $tt='';
  861. $i=0;
  862. }
  863. } else {
  864. echo "<tr><td colspan=7 align=center><small style='color: rgb(102, 13, 2);'>No Accounts were found!</td></tr>";
  865. }
  866. ?>
  867. </table>
  868. <?php
  869. metalborderdown();
  870. echo $pages;
  871. if ($_POST['namesel']!='') { echo $pages; }
  872. } else {
  873. $newquery = mysql_query("SELECT *, DATE_FORMAT(`bday`,'%d/%m/%Y') as `bday`, a.username as username, a.joindate as joindate, a.last_login as last_login,
  874. a.gmlevel as gmlevel, a.email as email, a.sha_pass_hash as password FROM forum_accounts fa LEFT JOIN (account a) ON fa.id_account = a.id
  875. WHERE fa.id_account='".$_REQUEST['id']."' AND (a.gmlevel < '".$userlevel."' OR a.id = '".$_SESSION['userid']."' OR fa.id_account NOT IN (SELECT id FROM `account`))") OR DIE (mysql_error());
  876. if (mysql_num_rows($newquery)==1) {
  877. $getbanned=mysql_fetch_array(mysql_query("SELECT *, fa.displayname as dn FROM account_banned ab LEFT JOIN (forum_accounts fa) ON fa.id_account = ab.bannedby WHERE id='".$_REQUEST['id']."' AND ab.active=1"));
  878. $rowa = mysql_fetch_array($newquery);
  879. $forceshow=true;
  880. if ($_POST['step']=='save') {
  881. if ($_POST['deleteacc']>'0') {
  882. $queryzed = mysql_query("SELECT name, rs.dbhost as rsdbhost, rs.dbport as rsdbport,rs.dbuser as rsdbuser,
  883. rs.dbpass as rsdbpass,rs.dbname as rsdbname FROM `realmlist` r LEFT JOIN (realm_settings rs) ON r.id = rs.id_realm
  884. GROUP BY r.id ORDER BY r.name", $MySQL_CON) OR DIE(mysql_error());
  885. while($rowo = mysql_fetch_array($queryzed)) {
  886. $newconb = mysql_connect($rowo['rsdbhost'].':'.$rowo['rsdbport'], $rowo['rsdbuser'], $rowo['rsdbpass']);
  887. $newdbb = mysql_select_db ($rowo['rsdbname'], $newconb) OR DIE(mysql_error());
  888. $cleanacc = mysql_query('DELETE FROM `characters` WHERE `account`="'.$rowa['id_account'].'"', $newconb);
  889. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  890. $cleanacc = mysql_query('DELETE FROM `character_inventory` WHERE guid NOT IN (SELECT guid FROM `characters`) AND guid!=0', $newconb);
  891. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  892. $cleanacc = mysql_query('DELETE FROM `character_inventory` WHERE item NOT IN (SELECT guid FROM `item_instance`) AND item!=0', $newconb);
  893. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  894. $cleanacc = mysql_query('DELETE FROM `item_instance` WHERE guid NOT IN(SELECT item FROM `character_inventory`) AND guid NOT IN(SELECT guid FROM mail) AND guid NOT IN(SELECT itemguid FROM `auctionhouse`)', $newconb);
  895. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  896. $cleanacc = mysql_query('DELETE FROM `mail` WHERE guid NOT IN (SELECT guid FROM `item_instance`) AND guid!=0', $newconb);
  897. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  898. $cleanacc = mysql_query('DELETE FROM `auctionhouse` WHERE itemguid NOT IN (SELECT guid FROM `item_instance`) AND itemguid!=0;', $newconb);
  899. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  900. if ($haserrors!='') { break; }
  901. }
  902. mysql_select_db ($MySQL_Set['DBREALM'], $MySQL_CON);
  903. if ($haserrors=='') {
  904. $cleanacc = mysql_query('DELETE FROM `forum_accounts` WHERE id_account="'.$rowa['id_account'].'"', $MySQL_CON);
  905. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  906. if ($_POST['deleteacc']=='1') {
  907. $cleanacc = mysql_query('UPDATE forum_posts SET id_account_edit=0 WHERE id_account="'.$rowa['id_account'].'"', $MySQL_CON);
  908. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  909. $cleanacc = mysql_query('DELETE FROM `forum_posts` WHERE `id_account`="'.$rowa['id_account'].'"', $MySQL_CON);
  910. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  911. $cleanacc = mysql_query('DELETE FROM `forum_topics` WHERE id_topic NOT IN (SELECT id_topic FROM forum_posts)', $MySQL_CON);
  912. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  913. $cleanacc = mysql_query('DELETE FROM `web_donations` WHERE id_account="'.$rowa['id_account'].'"', $MySQL_CON);
  914. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  915. $cleanacc = mysql_query('DELETE FROM `forum_rel_account_polls` WHERE `id_account`="'.$rowa['id_account'].'"', $MySQL_CON);
  916. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  917. $cleanacc = mysql_query('DELETE FROM `forum_rel_topics_polls` WHERE id_topic NOT IN (SELECT id_topic FROM forum_topics)', $MySQL_CON);
  918. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  919. } else if ($_POST['deleteacc']=='2') {
  920. $cleanacc = mysql_query('INSERT INTO `forum_accounts`(id_account, displayname) VALUES("'.$rowa['id_account'].'", "'.$rowa['displayname'].'")', $MySQL_CON);
  921. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  922. }
  923. $cleanacc = mysql_query('DELETE FROM `forum_pm` WHERE `id_account_from`="'.$rowa['id_account'].'" OR `id_account_to`="'.$rowa['id'].'"', $MySQL_CON);
  924. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  925. $cleanacc = mysql_query('DELETE FROM `forum_reports` WHERE `id_account`="'.$rowa['id_account'].'"', $MySQL_CON);
  926. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  927. $cleanacc = mysql_query('DELETE FROM `forum_views` WHERE `id_account`="'.$rowa['id_account'].'"', $MySQL_CON);
  928. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  929. $cleanacc = mysql_query('DELETE FROM `web_online` WHERE `id`="'.$rowa['id_account'].'"', $MySQL_CON);
  930. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  931. $cleanacc = mysql_query('DELETE FROM `account_banned` WHERE id="'.$rowa['id'].'"', $MySQL_CON);
  932. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  933. $cleanacc = mysql_query('DELETE FROM `account` WHERE id="'.$rowa['id_account'].'"', $MySQL_CON);
  934. if (!$cleanacc) { $haserrors.=mysql_error().'<br>'; }
  935. }
  936. if ($haserrors=='') {
  937. $forceshow=false;
  938. goodborder('Account Successfuly Removed!<META HTTP-EQUIV=REFRESH CONTENT="2; URL=?n=admin.accounts">');
  939. } else {
  940. $forceshow=true;
  941. errborder($haserrors);
  942. }
  943. } else if ($_POST['update']=='charinfo') {
  944. $queryz = mysql_query('UPDATE forum_accounts SET avatar="'.$_POST['avatar'].'" WHERE id_account="'.$rowa['id_account'].'"');
  945. goodborder('Account Forum Avatar Successfuly Updated.<meta http-equiv="refresh" content="2; ?n=admin.accounts&t=manage&id='.$rowa['id_account'].'">');
  946. $forceshow=false;
  947. } else {
  948. if ($rowa['username']!='') {
  949. if (strlen($_POST['fname'])<1 or strlen($_POST['fname'])>45) {
  950. $haserrors .="Invalid length on First Name field.<br>";
  951. } else {
  952. if (alphanum($_POST['fname'],false)==false) {
  953. $haserrors .="Invalid chars on First Name field.<br>";
  954. }
  955. }
  956. if (strlen($_POST['lname'])<1 or strlen($_POST['lname'])>45) {
  957. $haserrors .="Invalid length on Last Name field.<br>…

Large files files are truncated, but you can click here to view the full file