/backend/backend_viewuser.php

https://gitlab.com/Toldierone/Compounds-mirror · PHP · 151 lines · 151 code · 0 blank · 0 comment · 34 complexity · a95959f01c58217d757f26c76ebfe3fd MD5 · raw file

  1. <?php
  2. include("allfunctions.php");
  3. include("listresources.php");
  4. $getpost = array_merge($_GET, $_POST);
  5. foreach ($getpost as $key => $value) {
  6. $mysql[$key] = $GLOBALS['mysqli']->real_escape_string($value);
  7. }
  8. $sql =<<<EOSQL
  9. SELECT u.*, a.name AS alliancename, a.alliancesatisfaction,
  10. a.alliancefocus, a.alliancefocusamount
  11. FROM users u LEFT JOIN alliances a ON u.alliance_id = a.alliance_id WHERE u.user_id = '{$mysql['user_id']}'
  12. EOSQL;
  13. $thisuser = onelinequery($sql);
  14. if ($_POST && (($_POST['token_viewuser'] == "") || ($_POST['token_viewuser'] != $_SESSION['token_viewuser']))) {
  15. $errors[] = "Try again.";
  16. }
  17. if ($_POST || ($_SESSION['token_viewuser'] == "")) {
  18. $_SESSION['token_viewuser'] = sha1(rand() . $_SESSION['token_viewuser']);
  19. }
  20. $sql=<<<EOSQL
  21. SELECT name, value
  22. FROM constants
  23. EOSQL;
  24. $sth = $GLOBALS['mysqli']->query($sql);
  25. while ($rs = mysqli_fetch_array($sth)) {
  26. $constants[$rs['name']] = $rs['value'];
  27. }
  28. if (!$thisuser['donator']) $display['description'] = nl2br(htmlentities($thisuser['description'], ENT_SUBSTITUTE, "UTF-8"));
  29. else $display['description'] = $thisuser['description'];
  30. if ($_POST['action'] == "Send Message" && $_SESSION['user_id']) {
  31. $sql=<<<EOSQL
  32. SELECT user_id from users WHERE user_id = '{$mysql['user_id']}'
  33. EOSQL;
  34. if (!onelinequery($sql)) {
  35. $errors[] = "Something went badly wrong.";
  36. }
  37. if (!$mysql['message']) {
  38. $errors[] = "No message entered.";
  39. }
  40. if (empty($errors)) {
  41. $sql=<<<EOSQL
  42. SELECT * FROM blocklist WHERE blocker = '{$mysql['user_id']}' AND blockee = '{$_SESSION['user_id']}'
  43. EOSQL;
  44. $rs = onelinequery($sql);
  45. if ($rs['blocker']) {
  46. $errors[] = "That user has you blocked from sending messages.";
  47. } else {
  48. $sql = "INSERT INTO messages (touser, fromuser, message, sent) VALUES ({$mysql['user_id']}, {$_SESSION['user_id']}, '{$mysql['message']}', NOW())";
  49. $GLOBALS['mysqli']->query($sql);
  50. $display['message'] = "";
  51. $infos[] = "Message sent.";
  52. }
  53. }
  54. }
  55. if ($userinfo['alliance_id'] && $thisuser['alliance_id'] && $_POST['spy'] && !$errors) {
  56. if ($thisuser['user_id'] < 5 && $_SESSION['user_id'] >= 5) {
  57. $errors[] = "There's not a lot of point to that, really.";
  58. } else if ($thisuser['user_id'] == $_SESSION['user_id']) {
  59. $errors[] = "It's okay. Relax. We're all here for you.";
  60. } else if (!hasamount(25, $_SESSION['user_id'], $constants['equalitytospy'])) {
  61. $errors[] = "You do not have the Equality to spy on this user.";
  62. } else if (hasbanked(7, $thisuser['user_id'], $constants['unitytoblock'])) {
  63. $infos[] = "Your spying attempt was blocked by the target's Unity.";
  64. addamount(25, $_SESSION['user_id'], $constants['equalitytospy'] * -1);
  65. addbanked(7, $thisuser['user_id'], $constants['unitytoblock'] * -1);
  66. if (hasability("seespyattempts", $thisuser['user_id'])) {
  67. addreport("{$userinfo['username']} tried to spy on you, but your Unity blocked it!", $thisuser['user_id']);
  68. }
  69. $blocked = true;
  70. }
  71. if (!$errors && !$blocked) {
  72. $sql=<<<EOSQL
  73. SELECT * FROM elementpositions
  74. EOSQL;
  75. $sth = $GLOBALS['mysqli']->query($sql);
  76. while ($rs = mysqli_fetch_array($sth)) {
  77. $positions[$rs['position']] = $rs['resource_id'];
  78. }
  79. $elementpositions = array_flip($positions);
  80. foreach ($elementpositions as $value) {
  81. $production[$value] = $thisuser['production'];
  82. }
  83. if ($thisuser['alliancefocus'] == $thisuser['focus']) {
  84. $thisuser['focusamount'] += $thisuser['alliancefocusamount'];
  85. } else {
  86. switch ($thisuser['alliancefocusamount']) {
  87. case 1:
  88. $production[$elementpositions[$thisuser['alliancefocus']]] *= 2;
  89. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 5)] *= 1.25;
  90. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 1)] *= 1.25;
  91. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 4)] *= .8;
  92. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 2)] *= .8;
  93. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 3)] *= .5;
  94. break;
  95. case 2:
  96. $production[$elementpositions[$thisuser['alliancefocus']]] *= 3;
  97. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 5)] *= 2;
  98. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 1)] *= 2;
  99. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 4)] *= .5;
  100. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 2)] *= .5;
  101. $production[withinsix($elementpositions[$thisuser['alliancefocus']] + 3)] *= .25;
  102. break;
  103. default:
  104. break;
  105. }
  106. }
  107. switch ($thisuser['focusamount']) {
  108. case 1:
  109. $production[$elementpositions[$thisuser['focus']]] *= 2;
  110. $production[withinsix($elementpositions[$thisuser['focus']] + 5)] *= 1.25;
  111. $production[withinsix($elementpositions[$thisuser['focus']] + 1)] *= 1.25;
  112. $production[withinsix($elementpositions[$thisuser['focus']] + 4)] *= .8;
  113. $production[withinsix($elementpositions[$thisuser['focus']] + 2)] *= .8;
  114. $production[withinsix($elementpositions[$thisuser['focus']] + 3)] *= .5;
  115. break;
  116. case 2:
  117. $production[$elementpositions[$thisuser['focus']]] *= 3;
  118. $production[withinsix($elementpositions[$thisuser['focus']] + 5)] *= 2;
  119. $production[withinsix($elementpositions[$thisuser['focus']] + 1)] *= 2;
  120. $production[withinsix($elementpositions[$thisuser['focus']] + 4)] *= .5;
  121. $production[withinsix($elementpositions[$thisuser['focus']] + 2)] *= .5;
  122. $production[withinsix($elementpositions[$thisuser['focus']] + 3)] *= .25;
  123. break;
  124. case 3:
  125. $production[$elementpositions[$thisuser['focus']]] *= 4;
  126. $production[withinsix($elementpositions[$thisuser['focus']] + 5)] *= 2.5;
  127. $production[withinsix($elementpositions[$thisuser['focus']] + 1)] *= 2.5;
  128. $production[withinsix($elementpositions[$thisuser['focus']] + 4)] *= 0;
  129. $production[withinsix($elementpositions[$thisuser['focus']] + 2)] *= 0;
  130. $production[withinsix($elementpositions[$thisuser['focus']] + 3)] *= 0;
  131. break;
  132. case 4:
  133. $production[$elementpositions[$thisuser['focus']]] *= 15;
  134. $production[withinsix($elementpositions[$thisuser['focus']] + 5)] *= 0;
  135. $production[withinsix($elementpositions[$thisuser['focus']] + 1)] *= 0;
  136. $production[withinsix($elementpositions[$thisuser['focus']] + 4)] *= 0;
  137. $production[withinsix($elementpositions[$thisuser['focus']] + 2)] *= 0;
  138. $production[withinsix($elementpositions[$thisuser['focus']] + 3)] *= 0;
  139. break;
  140. default:
  141. break;
  142. }
  143. foreach ($production as $element => $amount) {
  144. $production[$element] = floor($amount);
  145. }
  146. $threshold = ($thisuser['production'] * 6) + 50;
  147. addamount(25, $_SESSION['user_id'], $constants['equalitytospy'] * -1);
  148. $resourcelist = getresourcelist($thisuser['user_id']);
  149. }
  150. }
  151. ?>