Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.52 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. * MyPHPpa
  5. * Copyright (C) 2003, 2007 Jens Beyer
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20. */
  21.  
  22. require_once "options.php";
  23. require_once "dblogon.php";
  24. require_once "newcoords.php";
  25. include_once "get_ip.php";
  26. include_once "check_ip.php";
  27. require_once "create_user.php";
  28. require_once "auth_check.php";
  29. require "logging.php";
  30.  
  31. $imgpath="true";
  32. require_once "header.php";
  33.  
  34. function db_error ($txt="Database error") {
  35.  
  36. echo "<html><body><br>";
  37. echo "<b>$txt</b>";
  38. echo "</body></html>";
  39. die;
  40. }
  41.  
  42. function check_legal ($n, $p) {
  43.  
  44. if (ereg ("<", $n) || ereg ("<", $p) ||
  45. eregi ("admin", $n) || eregi ("admin", $p) ) {
  46. return 7;
  47. }
  48. return 0;
  49. }
  50.  
  51. function check_length ($l, $n, $p) {
  52.  
  53. if (strlen($n) < 4 || strlen($p) < 4 || strlen($l) < 2 ||
  54. strlen($n) > 20 || strlen($p) > 20 || strlen($l) > 25) {
  55. if (strlen($l) < 2 || strlen($l) > 25) return 51;
  56. return 52;
  57. }
  58. return 0;
  59. }
  60.  
  61. function check_taken_planet ($n, $p) {
  62. global $db;
  63.  
  64. $result = mysqli_query("SELECT * FROM planet " .
  65. "WHERE leader='$n' OR planetname='$p'", $db);
  66. if (!$result) db_error();
  67. if (mysqli_num_rows($result) == 0) return 0;
  68.  
  69. $ret = 32;
  70. $result = mysqli_query("SELECT * FROM planet " .
  71. "WHERE leader='$n' ", $db);
  72.  
  73. if (!$result) db_error();
  74. if (mysqli_num_rows($result) == 1) $ret = 31;
  75. return $ret;
  76. }
  77.  
  78. function check_taken_user ($l, $e) {
  79. global $db;
  80.  
  81. $result = mysqli_query("SELECT * FROM user " .
  82. "WHERE login='$l' OR email='$e'", $db);
  83. if (!$result) db_error();
  84. if (mysqli_num_rows($result) == 0) return 0;
  85.  
  86. $ret = 12;
  87. $result = mysqli_query("SELECT * FROM user " .
  88. "WHERE login='$l' ", $db);
  89.  
  90. if (!$result) db_error();
  91. if (mysqli_num_rows($result) == 1) $ret = 11;
  92. return $ret;
  93. }
  94.  
  95. function check_email ($e) {
  96.  
  97. if ($e && (!eregi ("@", $e) || !eregi ("\.", $e) ||
  98. strlen ($e) < 7))
  99. return 4;
  100. return 0;
  101. }
  102.  
  103. function send_password($pid) {
  104. global $game, $db, $round;
  105.  
  106. $q = "SELECT email, login, password FROM user WHERE planet_id=$pid ";
  107. $result = mysqli_query($q, $db);
  108.  
  109. if ($result && mysqli_num_rows($result) == 1) {
  110. $rowu = mysqli_fetch_array($result);
  111. } else {
  112. db_error("DBerror: sending password");
  113. }
  114.  
  115. $q = "SELECT leader, planetname, x, y, z FROM planet WHERE id=$pid ";
  116. $result = mysqli_query($q, $db);
  117.  
  118. if ($result && mysqli_num_rows($result) == 1) {
  119. $rowp = mysqli_fetch_array($result);
  120. } else {
  121. db_error("DBerror: sending password");
  122. }
  123.  
  124. setcookie("Valid",md5($round),time()+432000);
  125. setcookie("imgpath","/img",time()+1209600);
  126.  
  127. my_header(0, 0, 0);
  128.  
  129. mail("$rowu[email]", "$game signup password",
  130. "\nLogin: $rowu[login]\n".
  131. "Password: $rowu[password]\n".
  132. "Email: $rowu[email]\nCoords: [$rowp[x]:$rowp[y]:$rowp[z]] ".
  133. "$rowp[leader] of $rowp[planetname]\n\nHave Fun!!\n\n".
  134. "PS: Remember that idle planets with less then 4 roids will ".
  135. "be deleted\n after 12 hours.\n",
  136. "From: MyPHPpa@web.de\nReply-To: MyPHPpa@web.de\n".
  137. "X-Mailer: PHP/" . phpversion());
  138.  
  139. do_log_id($pid, 6, 1, get_ip());
  140. do_log_id($pid, 6, 2, get_type());
  141.  
  142. echo "<center><br><img src=\"/img/logo.jpg\"" .
  143. "width=\"290\" height=\"145\"><br>\n";
  144.  
  145. echo "<b>The password has been mailed to $rowu[email]</b>";
  146. echo "<br><br><a href=\"index.php\" target=\"_top\">Login</a></center>";
  147. echo "</body></html>";
  148. die;
  149. }
  150.  
  151. if ($signupclosed == 1 || !check_ip(get_ip()) || $mytick > $end_of_round) {
  152. my_header("",0,0);
  153. echo "<center><br><img src=\"/img/logo.jpg\"" .
  154. "width=\"290\" height=\"145\"><br>\n";
  155. echo "<br><br><br>\n<h1>Sorry, atm signup is closed</h1>";
  156. echo "</center></body></html>";
  157. die();
  158. }
  159.  
  160. if ($Valid && $Valid != "") {
  161. if ($Valid == md5($round)) {
  162. my_header(0,0,0);
  163. echo "<center><br><img src=\"/img/logo.jpg\"" .
  164. "width=\"290\" height=\"145\"><br>\n";
  165.  
  166. echo "<H1>You signed up already!!</H1></CENTER></body></html>\n";
  167. die();
  168. } else {
  169. setcookie("Valid","");
  170. }
  171. }
  172.  
  173. /* hier gehts los */
  174.  
  175. if ($submit && $submit != "") {
  176.  
  177. $taken = 0;
  178.  
  179. $login = trim(chop($login));
  180. $email = trim(chop($email));
  181. $nick = trim(chop($nick));
  182. $planet= trim(chop($planet));
  183. $pat = array("/^\((.*)\)/","/^{(.*)}/","/^\[(.*)\]/","/</","/'/");
  184. $rep = array("\\1","\\1","\\1","","");
  185. $planet = preg_replace ($pat, $rep, $planet);
  186. $nick = htmlspecialchars ($nick);
  187. $planet = htmlspecialchars ($planet);
  188. $nick = trim(chop($nick));
  189. $planet= trim(chop($planet));
  190.  
  191.  
  192. if (!$login || !$email || !$nick || !$planet)
  193. $taken = 100;
  194.  
  195. if (!$taken && ($login=="" || $email==""
  196. || $nick=="" || $planet==""))
  197. $taken = 101;
  198.  
  199. if (!$taken) $taken = check_email ($email);
  200. if (!$taken) $taken = check_length ($login, $nick, $planet);
  201. if (!$taken) $taken = check_taken_user ($login, $email);
  202.  
  203. if (!$taken) $taken = check_legal ($nick, $planet);
  204. if (!$taken) $taken = check_taken_planet ($nick, $planet);
  205.  
  206. if (!$taken) {
  207. /* jetzt sollte es tun */
  208.  
  209. $result = mysqli_query("SELECT tick FROM general");
  210. $row = mysqli_fetch_row($result);
  211. $mytick = $row[0];
  212.  
  213. $pw_tmp = md5 (uniqid (rand()));
  214. $pw = substr($pw_tmp, 0, 8);
  215.  
  216. $res = get_new_coords ($x, $y, $z);
  217. if ($res) db_error("Sorry universe is full!!");
  218.  
  219. $result = mysqli_query("INSERT into planet set planetname='$planet'," .
  220. "leader='$nick',mode=0xF1,x=$x,y=$y,z=$z", $db);
  221. if (!$result) db_error("DBerror: Insert planet");
  222.  
  223. $planet_id = mysqli_insert_id ($db);
  224. if (!$planet_id) db_error("DBerror: Get Planetid");
  225.  
  226. $result = mysqli_query("INSERT into user ".
  227. "SET login='$login',password='$pw'," .
  228. "email='$email',planet_id='$planet_id',".
  229. "signup=NOW(),first_tick='$mytick'",$db);
  230.  
  231. if (!$result) db_error("DBerror: Insert User");
  232.  
  233. /* add galaxy counter
  234. */
  235. $result = mysqli_query ("UPDATE galaxy SET members=members+1 ".
  236. "WHERE x=$x AND y=$y", $db);
  237. if (!$result) db_error("DBerror: Update galaxy");
  238.  
  239. /* suplementary entries
  240. */
  241. create_user($planet_id);
  242.  
  243. /* here we go */
  244. send_password($planet_id);
  245.  
  246. die;
  247. }
  248. }
  249.  
  250. my_header(0,0,0);
  251.  
  252. echo "<center><br><img src=\"/img/logo.jpg\"" .
  253. "width=\"290\" height=\"145\"><br>\n";
  254.  
  255. if ($submit) {
  256.  
  257. /* Failed signup */
  258. echo "<b>";
  259.  
  260. switch ($taken) {
  261. case 11:
  262. echo "Login already taken!!";
  263. $login = "";
  264. break;
  265. case 12:
  266. echo "Email already taken!!";
  267. $email = "";
  268. break;
  269. case "31":
  270. echo "Leader name already taken!!";
  271. $nick = "";
  272. break;
  273. case "32":
  274. echo "Planetname already taken!!";
  275. $planet = "";
  276. break;
  277. case 4:
  278. echo "Your email seems unbelievable";
  279. $email = "";
  280. break;
  281. case 51:
  282. echo "Minimum Login length is 2 chars with a maximum of 25";
  283. break;
  284. case 52:
  285. echo "Nick / Planetname must have a " .
  286. "length of at least 4 and a maximum of 20 chars";
  287. break;
  288. case 7:
  289. echo "Illegal char (<) or leader/planetname\n";
  290. break;
  291. default:
  292. echo "<b>Please fill all fields !!";
  293. }
  294. echo "</b><br>\n";
  295.  
  296. } else {
  297. echo "<br>";
  298. }
  299.  
  300. echo <<<EOF
  301. <br>
  302. <FORM method="post" action="$_SERVER[PHP_SELF]">
  303. <TABLE border=1><tr><td>
  304. <TABLE border=0 width=450 cellspacing=5>
  305. <tr><td colspan=3>&nbsp;</td></tr>
  306. <TR>
  307. <TD align=center colspan=3>
  308. <b>A password will be mailed to you after <br>
  309. the login has been verified</b>.</TD>
  310. </TR>
  311. <tr><td colspan=3><hr></td></tr>
  312. <TR>
  313. <TD align=right width=120>Login:</TD>
  314. <TD><input type="text" name="login" size="25" maxlength="29" value="$login"></TD>
  315. <td rowspan="4" bgcolor="#525252">
  316. Using offensive or insulting names
  317. will lead to deletion of planet!</td>
  318. </TR>
  319. <TR>
  320. <TD align=right>Email:</TD>
  321. <TD><input type="text" name="email" size="25" maxlength="249" value="$email"></TD>
  322. </TR>
  323. <TR>
  324. <TD align=right>Leader:</TD>
  325. <TD><input type="text" name="nick" size="25" maxlength="20" value="$nick"></TD>
  326. </TR>
  327. <TR>
  328. <TD align=right>Planetname:</TD>
  329. <TD><input type="text" name="planet" size="25" maxlength="20" value="$planet"></TD>
  330. </TR>
  331. <tr><td colspan=3><hr></td></tr>
  332. <TR>
  333. <td align=center colspan=3>
  334. <span class="red"><b>By signing up you accept to follow the
  335. <a href="help_general.php">rules</a> -
  336. <br>otherwise your account will be banned from gameplay.</b></span><br>
  337. </TD>
  338. </TR>
  339. <TR>
  340. <TD align=center colspan=3>
  341. <input type=submit value="Accept" name="submit">
  342. &nbsp;<input type=reset value=" Reset "></TD>
  343. </TR>
  344. <tr><td colspan=3>&nbsp;</td></tr>
  345. </TABLE>
  346. </td></tr></table>
  347. </FORM>
  348.  
  349. EOF;
  350.  
  351. require "footer.php";
  352.  
  353. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement