/backend/backend_userinfo.php

https://gitlab.com/Toldierone/ReClop · PHP · 203 lines · 201 code · 2 blank · 0 comment · 21 complexity · 5fc7096724065cd30602cd6b3100642d MD5 · raw file

  1. <?php
  2. include("allfunctions.php");
  3. needsuser();
  4. foreach ($_POST as $key => $value) {
  5. $mysql[$key] = $GLOBALS['mysqli']->real_escape_string($value);
  6. }
  7. if ($_POST && (($_POST['token_userinfo'] == "") || ($_POST['token_userinfo'] != $_SESSION['token_userinfo']))) {
  8. $errors[] = "Try again.";
  9. }
  10. if ($_POST || ($_SESSION['token_userinfo'] == "")) {
  11. $_SESSION['token_userinfo'] = sha1(rand() . $_SESSION['token_userinfo']);
  12. }
  13. $sql =<<<EOSQL
  14. SELECT u.username, u.user_id, u.email, u.flag, u.donator, u.description, u.stasismode, u.hidebanners, u.hideicons, u.hidereports, u.alliance_id, u.funmode, a.name AS alliancename
  15. FROM users u LEFT JOIN alliances a ON u.alliance_id = a.alliance_id WHERE u.user_id = '{$_SESSION['user_id']}'
  16. EOSQL;
  17. $userinfo = onelinequery($sql);
  18. $display['description'] = htmlentities($userinfo['description'], ENT_SUBSTITUTE, "UTF-8");
  19. $display['email'] = htmlentities($userinfo['email'], ENT_SUBSTITUTE, "UTF-8");
  20. $display['flag'] = htmlentities($userinfo['flag'], ENT_SUBSTITUTE, "UTF-8");
  21. $funstatus = ($userinfo['funmode'] == 1) ? "checked" : "";
  22. $_SESSION['async_token'] = sha1(rand());
  23. if (!$errors) {
  24. if ($_POST['changedescription']) {
  25. $sql=<<<EOSQL
  26. UPDATE users SET description = '{$mysql['description']}' WHERE user_id = '{$_SESSION['user_id']}'
  27. EOSQL;
  28. $GLOBALS['mysqli']->query($sql);
  29. $infos[] = "Description changed.";
  30. $display['description'] = htmlentities($_POST['description'], ENT_SUBSTITUTE, "UTF-8");
  31. }
  32. if ($_POST['action'] == "New Password") {
  33. $checkpasswordhash = sha1($mysql['currentpassword'] . "saltlick"); // I'm fully aware that this is shit, thanks
  34. $sql = "SELECT user_id FROM users WHERE user_id = '{$_SESSION['user_id']}' AND password = '{$checkpasswordhash}'";
  35. $rs = onelinequery($sql);
  36. if (!$rs) {
  37. $errors[] = "Incorrect current password.";
  38. }
  39. if ($_POST['password'] != $_POST['confirm_password']) {
  40. $errors[] = "Passwords do not match.";
  41. }
  42. if (empty($errors)) {
  43. $passwordhash = sha1($mysql['password'] . "saltlick");
  44. $sql=<<<EOSQL
  45. UPDATE users SET password = '{$passwordhash}' WHERE user_id = '{$_SESSION['user_id']}'
  46. EOSQL;
  47. $GLOBALS['mysqli']->query($sql);
  48. $infos[] = "Password changed.";
  49. }
  50. }
  51. if ($_POST['changeflag']) {
  52. if (!preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))$/i', $_POST['flag']) && $_POST['flag'] != "") {
  53. $errors[] = "Heeeeyyy... are you SURE that's an image? (JPGs, GIFs, and PNGs only.)";
  54. }
  55. if (empty($errors)) {
  56. $sql=<<<EOSQL
  57. UPDATE users SET flag = '{$mysql['flag']}' WHERE user_id = '{$_SESSION['user_id']}'
  58. EOSQL;
  59. $GLOBALS['mysqli']->query($sql);
  60. $infos[] = "Flag changed.";
  61. $userinfo['flag'] = $_POST['flag'];
  62. $display['flag'] = htmlentities($userinfo['flag'], ENT_SUBSTITUTE, "UTF-8");
  63. }
  64. }
  65. if ($_POST['changeemail']) {
  66. if (empty($errors)) {
  67. $sql=<<<EOSQL
  68. UPDATE users SET email = '{$mysql['email']}' WHERE user_id = '{$_SESSION['user_id']}'
  69. EOSQL;
  70. $GLOBALS['mysqli']->query($sql);
  71. $infos[] = "Email address changed.";
  72. $userinfo['email'] = $_POST['email'];
  73. $display['email'] = htmlentities($userinfo['email'], ENT_SUBSTITUTE, "UTF-8");
  74. }
  75. }
  76. if ($_POST['changecolor']) {
  77. $mysql['css'] = (int)$_POST['css'];
  78. if ($mysql['css'] > 2 || $mysql['css'] < 0) {
  79. $errors[] = "What do you think would even happen, smart guy?";
  80. }
  81. if (!$errors) {
  82. $sql=<<<EOSQL
  83. UPDATE users SET css = '{$mysql['css']}' WHERE user_id = '{$_SESSION['user_id']}'
  84. EOSQL;
  85. $_SESSION['css'] = $mysql['css'];
  86. $userinfo['css'] = $mysql['css'];
  87. $GLOBALS['mysqli']->query($sql);
  88. }
  89. }
  90. if ($_POST['enterstasis']) {
  91. $sql=<<<EOSQL
  92. SELECT stasisdate FROM users WHERE user_id = '{$_SESSION['user_id']}'
  93. EOSQL;
  94. $rs = onelinequery($sql);
  95. if (strtotime($rs['stasisdate']) > (time() - 86400)) {
  96. $errors[] = "You have left stasis less than 24 hours ago.";
  97. } else {
  98. $sql=<<<EOSQL
  99. SELECT nation_id FROM nations WHERE user_id = '{$_SESSION['user_id']}'
  100. EOSQL;
  101. $sth = $GLOBALS['mysqli']->query($sql);
  102. while ($rs = mysqli_fetch_array($sth)) {
  103. $sql=<<<EOSQL
  104. UPDATE forcegroups SET attack_mission = 0, oldmission = 0, departuredate = NULL, destination_id = 0
  105. WHERE nation_id = {$rs['nation_id']}
  106. AND departuredate IS NOT NULL
  107. EOSQL;
  108. $GLOBALS['mysqli']->query($sql);
  109. $sql=<<<EOSQL
  110. UPDATE forcegroups SET attack_mission = 0, oldmission = 0, destination_id = {$rs['nation_id']}, departuredate = NOW()
  111. WHERE nation_id = {$rs['nation_id']}
  112. AND location_id != {$rs['nation_id']}
  113. EOSQL;
  114. $GLOBALS['mysqli']->query($sql);
  115. }
  116. $sql = "SELECT username FROM users WHERE user_id = {$_SESSION['user_id']}";
  117. $thisuser = onelinequery($sql);
  118. $message=<<<EOFORM
  119. <a href="viewuser.php?user_id={$_SESSION['user_id']}">{$thisuser['username']}</a> has gone into stasis.
  120. EOFORM;
  121. $mysqlmessage = $GLOBALS['mysqli']->real_escape_string($message);
  122. $sql =<<<EOSQL
  123. INSERT INTO news (message, posted)
  124. VALUES ('{$mysqlmessage}', NOW())
  125. EOSQL;
  126. $GLOBALS['mysqli']->query($sql);
  127. $sql=<<<EOSQL
  128. UPDATE users SET stasisdate = NOW(), stasismode = 1 WHERE user_id = '{$_SESSION['user_id']}'
  129. EOSQL;
  130. $GLOBALS['mysqli']->query($sql);
  131. session_destroy();
  132. session_unset();
  133. header("Location: index.php");
  134. exit;
  135. }
  136. } else if ($_POST['leavestasis']) {
  137. if (!$errors) {
  138. $sql=<<<EOSQL
  139. UPDATE users SET stasisdate = NOW(), stasismode = 0 WHERE user_id = '{$_SESSION['user_id']}'
  140. EOSQL;
  141. $GLOBALS['mysqli']->query($sql);
  142. $infos[] = "You have left stasis mode.";
  143. $userinfo['stasismode'] = 0;
  144. $sql = "SELECT username FROM users WHERE user_id = {$_SESSION['user_id']}";
  145. $thisuser = onelinequery($sql);
  146. $message=<<<EOFORM
  147. <a href="viewuser.php?user_id={$_SESSION['user_id']}">{$thisuser['username']}</a> has left stasis.
  148. EOFORM;
  149. $mysqlmessage = $GLOBALS['mysqli']->real_escape_string($message);
  150. $sql =<<<EOSQL
  151. INSERT INTO news (message, posted)
  152. VALUES ('{$mysqlmessage}', NOW())
  153. EOSQL;
  154. $GLOBALS['mysqli']->query($sql);
  155. }
  156. }
  157. if ($_POST['hidebanners']) {
  158. $sql=<<<EOSQL
  159. UPDATE users SET hidebanners = 1 WHERE user_id = '{$_SESSION['user_id']}'
  160. EOSQL;
  161. $GLOBALS['mysqli']->query($sql);
  162. $_SESSION['hidebanners'] = 1;
  163. $userinfo['hidebanners'] = 1;
  164. } else if ($_POST['showbanners']) {
  165. $sql=<<<EOSQL
  166. UPDATE users SET hidebanners = 0 WHERE user_id = '{$_SESSION['user_id']}'
  167. EOSQL;
  168. $GLOBALS['mysqli']->query($sql);
  169. $_SESSION['hidebanners'] = 0;
  170. $userinfo['hidebanners'] = 0;
  171. }
  172. if ($_POST['hidereports']) {
  173. $sql=<<<EOSQL
  174. UPDATE users SET hidereports = 1 WHERE user_id = '{$_SESSION['user_id']}'
  175. EOSQL;
  176. $GLOBALS['mysqli']->query($sql);
  177. $_SESSION['hidereports'] = 1;
  178. $userinfo['hidereports'] = 1;
  179. } else if ($_POST['showreports']) {
  180. $sql=<<<EOSQL
  181. UPDATE users SET hidereports = 0 WHERE user_id = '{$_SESSION['user_id']}'
  182. EOSQL;
  183. $GLOBALS['mysqli']->query($sql);
  184. $_SESSION['hidereports'] = 0;
  185. $userinfo['hidereports'] = 0;
  186. }
  187. if ($_POST['hideicons']) {
  188. $sql=<<<EOSQL
  189. UPDATE users SET hideicons = 1 WHERE user_id = '{$_SESSION['user_id']}'
  190. EOSQL;
  191. $GLOBALS['mysqli']->query($sql);
  192. $userinfo['hideicons'] = 1;
  193. } else if ($_POST['showicons']) {
  194. $sql=<<<EOSQL
  195. UPDATE users SET hideicons = 0 WHERE user_id = '{$_SESSION['user_id']}'
  196. EOSQL;
  197. $GLOBALS['mysqli']->query($sql);
  198. $userinfo['hideicons'] = 0;
  199. }
  200. }
  201. ?>