PageRenderTime 56ms CodeModel.GetById 34ms RepoModel.GetById 0ms app.codeStats 0ms

/accmngr.php

https://github.com/nandor/myGreenTown
PHP | 188 lines | 149 code | 39 blank | 0 comment | 32 complexity | f8152689e900e9ebaa556656ff8a9824 MD5 | raw file
  1. <?php
  2. include 'include/lang.php';
  3. include 'include/config.php';
  4. include 'include/lib.php';
  5. include 'include/usr.class.php';
  6. include 'include/db.php';
  7. @session_start ();
  8. if (isset ($_POST['cmd'])) {
  9. switch ($_POST['cmd']) {
  10. case 'register':
  11. {
  12. if (!isset ($_POST['name'], $_POST['pass'])) {
  13. echo __("Server error"); exit ();
  14. }
  15. if ($_POST['captcha'] != $_SESSION['captcha']) {
  16. echo __("Invalid verification text entered!"); exit ();
  17. }
  18. $db = mysql_query ("SELECT id FROM user WHERE `name` = '{$_POST['name']}';");
  19. if (mysql_num_rows($db) != 0) {
  20. echo __("Username is already used!"); exit ();
  21. }
  22. $name = trim ($_POST['name']);
  23. if (!valid_name ($name)) {
  24. echo __("Invalid username!"); exit ();
  25. }
  26. $name = mysql_real_escape_string ($name);
  27. $pass = mysql_real_escape_string ($_POST['pass']);
  28. $achievDone = "";
  29. for($i = 0; $i < 32; $i++)
  30. $achievDone .= "00";
  31. mysql_query ("ALTER TABLE user AUTO_INCREMENT = 1;");
  32. $townID = addTown ("{$_POST['name']}ville");
  33. mysql_query ("INSERT INTO user(`name`, `pass`, `townID`, `achiev`) VALUES ('$name', '$pass', '$townID', 0x$achievDone);");
  34. echo "ok";
  35. break;
  36. }
  37. case 'changeName':
  38. {
  39. if (!isset ($_POST['newName'])) {
  40. echo __("Game error!"); exit ();
  41. }
  42. if (!($usr = initUser ())) {
  43. echo __("You cannot access this page!");
  44. }
  45. $name = $usr->name;
  46. $newName = trim ($_POST['newName']);
  47. if (!valid_name ($newName)) {
  48. echo __("Invalid username!"); exit ();
  49. }
  50. if (mysql_num_rows(mysql_query ("SELECT * FROM user WHERE name = '$newName';")) > 0) {
  51. echo __("Username is already used!"); exit ();
  52. }
  53. mysql_query ("UPDATE user SET `name`= '$newName' WHERE `name` = '$name';");
  54. $usr->name = $newName;
  55. if (isset ($_COOKIE['userName'])) {
  56. setCookie ("userName", $usr->name, time() + 3600000);
  57. }
  58. echo "ok";
  59. break;
  60. }
  61. case 'changePass':
  62. {
  63. if (!isset ($_POST['newPass'], $_POST['pass'])) {
  64. echo __("Game error!"); exit ();
  65. }
  66. if (!($usr = initUser ())) {
  67. echo __("You cannot access this page!");
  68. }
  69. $name = $usr->name;
  70. $pass = $usr->pass;
  71. $passOld = mysql_real_escape_string ($_POST['pass']);
  72. $passNew = mysql_real_Escape_string ($_POST['newPass']);
  73. if ($passOld != $pass) {
  74. echo __("Invalid password!"); exit ();
  75. }
  76. mysql_query ("UPDATE user SET `pass`= '$passNew' WHERE `name`= '$name';");
  77. $usr->pass = $passNew;
  78. if (isset ($_COOKIE['userName'])) {
  79. setCookie ("userName", $usr->name, time() + 3600000);
  80. setCookie ("userPass", $usr->pass, time() + 3600000);
  81. }
  82. echo "ok";
  83. break;
  84. }
  85. case 'addtown':
  86. {
  87. if (!isset ($_POST['name'])) {
  88. echo __("Game error!"); exit ();
  89. }
  90. $newName = mysql_real_escape_string ($_POST['name']);
  91. if (!valid_name ($newName, false)) {
  92. echo __("Invalid name!"); exit ();
  93. }
  94. if (!($usr = initUser ())) {
  95. echo __("You cannot access this page!");
  96. }
  97. if ($usr->numTown > MAXTOWN) {
  98. echo __("You have too many towns!"); exit ();
  99. }
  100. $newTownID = addTown ($newName);
  101. mysql_query ("UPDATE user SET `townID` = CONCAT(`townID`, ',{$newTownID}') WHERE `id`= '{$usr->id}';");
  102. echo "ok";
  103. break;
  104. }
  105. case 'deleteTown':
  106. {
  107. if (!isset ($_POST['town'])) {
  108. echo __("Game error!"); exit ();
  109. }
  110. if (!($usr = initUser ())) {
  111. echo __("You cannot access this page!");
  112. }
  113. $id = intval ($_POST['town']);
  114. if (!$usr->hasTown ($id)) {
  115. echo __("You don't own that town!"); exit ();
  116. }
  117. if ($usr->numTown == 1) {
  118. echo __("You can't delete your last town!"); exit ();
  119. }
  120. mysql_query("DELETE FROM `town` WHERE `id` = '$id';");
  121. $i = 0;
  122. $newArray = "";
  123. foreach($usr->towns as $town) {
  124. $currentID = $town->id;
  125. if($currentID != $id) {
  126. if($i != 0) {
  127. $newArray .= ',';
  128. } else {
  129. $i = 1;
  130. }
  131. $newArray .= $currentID;
  132. }
  133. }
  134. mysql_query("UPDATE `user` SET `townID`= '$newArray' WHERE `id`= '{$usr->id}';");
  135. echo "ok";
  136. break;
  137. }
  138. default:
  139. {
  140. echo __("Invalid command!");
  141. break;
  142. }
  143. }
  144. } else {
  145. echo __("Server error");
  146. }
  147. mysql_close ();
  148. ?>