Guest User

Reg

a guest
Nov 18th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.01 KB | None | 0 0
  1. <?php
  2. require_once 'config.php';
  3. require_once 'functions.php';
  4. require_once 'recaptchalib.php';
  5.  
  6. $privatekey = "6LcoouYSAAAAAPqMC4MyP8wRieWRNvfGoJw7-LdJ";
  7. $publickey = "6LcoouYSAAAAAGdxiM-0G2jv8BHKCOFqArqz0gwQ";
  8.  
  9. if (isLoggedIn()) { redirect('membersarea.php'); }
  10.  
  11. define('DEFAULT_STARTER_LEVEL', 15);
  12. define('DEFAULT_STARTER_COLUMNS', 4);
  13. define('DEFAULT_USER_MONEY', 20000);
  14.  
  15. $pokemonNames = array(
  16. 'Bulbasaur' , 'Charmander' , 'Squirtle' , 'Chikorita' ,
  17. 'Cyndaquil' , 'Totodile' , 'Treecko' , 'Torchic' ,
  18. 'Mudkip' , 'Turtwig' , 'Chimchar' , 'Piplup' ,
  19. 'Snivy' , 'Tepig' , 'Oshawott' , 'Eevee'
  20. );
  21.  
  22. $username = isset( $_POST['username'] ) ? $_POST['username'] : '' ;
  23. $email = isset( $_POST['email'] ) ? $_POST['email'] : '' ;
  24. $password = isset( $_POST['password'] ) ? $_POST['password'] : '' ;
  25. $password2 = isset( $_POST['password2'] ) ? $_POST['password2'] : '' ;
  26. $pokemon = isset( $_POST['pokemon'] ) ? $_POST['pokemon'] : '' ;
  27.  
  28. $username = trim($username);
  29. $errorMessage = '';
  30.  
  31. if(count($_POST) > 0) {
  32.  
  33. $sqlUsername = cleanSql( trim($username) );
  34. $sqlPassword = sha1($password);
  35. $sqlEmail = cleanSql($email);
  36. $sqlPokemon = cleanSql($pokemon);
  37. $time = time();
  38. $errors = array();
  39.  
  40.  
  41.  
  42. if( $username == '' ) {
  43. $errors[] = $lang['register_empty_username'];
  44. }
  45.  
  46. if( strlen($username) < 5){
  47. $errors[] = $lang['register_contain_username'];
  48. }
  49.  
  50. if( strlen($username) > 40){
  51. $errors[] = $lang['register_contain_username_max'];
  52. }
  53.  
  54. if( !in_array($pokemon, $pokemonNames) ) {
  55. $errors[] = $lang['register_not_starter'];
  56. }
  57.  
  58. if($password != $password2) {
  59. $errors[] = $lang['register_match_pwd'];
  60. }
  61.  
  62. if(strlen($password) <= 6) {
  63. $errors[] = $lang['register_contain_pwd'];
  64. }
  65.  
  66. if(filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  67. $errors[] = $lang['register_valid_email'];
  68. }
  69.  
  70. if (isset($_POST["recaptcha_challenge_field"]) && isset($_POST["recaptcha_response_field"])) {
  71. $resp = recaptcha_check_answer(
  72. $privatekey,
  73. $_SERVER["REMOTE_ADDR"],
  74. $_POST["recaptcha_challenge_field"],
  75. $_POST["recaptcha_response_field"]
  76. );
  77.  
  78. if(!$resp->is_valid) {
  79. $errors[] = $lang['register_captcha_wrong'];
  80. }
  81. } else {
  82. $errors[] = $lang['register_captcha_missing'];
  83. }
  84.  
  85. $query = mysql_query("SELECT `id` FROM `users` WHERE `username`='{$sqlUsername}' LIMIT 3");
  86. if(mysql_num_rows($query) == 3) {
  87. $errors[] = $lang['register_taken_username'];
  88. }
  89.  
  90. if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
  91. $ip = cleanSql($_SERVER['HTTP_X_FORWARDED_FOR']);
  92. } else {
  93. $ip = cleanSql($_SERVER['REMOTE_ADDR']);
  94. }
  95.  
  96. if (isset($_GET['ref'])) {
  97. $refId = (int) $_GET['ref'];
  98. $query = mysql_query("SELECT * FROM `users` WHERE `id`='{$refId}'");
  99. $refRow = mysql_fetch_assoc($query);
  100. if ($refRow['ip'] == $ip) {
  101. $errors[] = $lang['register_match_ip'];
  102. }
  103. }
  104.  
  105. $oneDayAgo = time() - (60*60*24);
  106. $query = mysql_query("SELECT `id` FROM `users` WHERE `ip`='{$ip}' AND `signup_date`>='{$oneDayAgo}' LIMIT 1");
  107. if(mysql_num_rows($query) == 1) {
  108. $errors[] = $lang['register_already_ip'];
  109. }
  110.  
  111.  
  112. /* if(mysql_num_rows(mysql_query("SELECT id FROM users WHERE ip = '{$ip}'")) != 0) {
  113. include '_header.php';
  114. echo '<div class="ip-error">Sorry, but there\'s already an account registered under this IP. <br />
  115. If you wish to reclaim this account or delete it, please contact one of our administrators.</div>';
  116. die();
  117. } */
  118.  
  119.  
  120. if (count($errors) > 0) {
  121. $errorMessage = '<p style="top: 0; margin: 2px 0;" class="error">'.implode('</p><p style="top: 0; margin: 2px 0;" class="error">', $errors).'</p>';
  122. } else {
  123.  
  124. // make them a user account
  125. $money = DEFAULT_USER_MONEY;
  126. $refId = isset($_GET['ref']) ? (int) $_GET['ref'] : 0 ;
  127. mysql_query("
  128. INSERT INTO `users` (
  129. `username`, `password`, `email`,`signup_date`, `money`, `ip`, `register_ip`, `ref_id`
  130. ) VALUES (
  131. '{$sqlUsername}', '{$sqlPassword}', '{$sqlEmail}', '{$time}', '{$money}', '{$ip}', '{$ip}', '$refId')
  132. ");
  133. $uid = mysql_insert_id();
  134.  
  135.  
  136. $pokeQuery = mysql_query("SELECT * FROM `pokemon` WHERE `name`='{$pokemon}'");
  137. $pokemonRow = mysql_fetch_assoc($pokeQuery);
  138. $level = DEFAULT_STARTER_LEVEL;
  139. $exp = levelToExp($level);
  140.  
  141. // give them a pokemon
  142. $query = mysql_query("
  143. INSERT INTO `user_pokemon` (
  144. `uid`, `name`, `level`, `exp`, `move1`, `move2`, `move3`, `move4`
  145. ) VALUES (
  146. '{$uid}', '{$pokemon}', '{$level}', '{$exp}', '{$pokemonRow['move1']}', '{$pokemonRow['move2']}', '{$pokemonRow['move3']}', '{$pokemonRow['move4']}'
  147. )
  148. ");
  149. $pid = mysql_insert_id();
  150.  
  151. // put the pokemon in the first slot
  152. mysql_query("UPDATE `users` SET `poke1`='{$pid}' WHERE `id`='{$uid}'");
  153.  
  154. //give them some items
  155. mysql_query("
  156. INSERT INTO `user_items` (
  157. `uid`, `poke_ball`, `great_ball`, `ultra_ball`, `master_ball`,
  158. `potion`, `super_potion`, `hyper_potion`, `burn_heal`, `full_heal`,
  159. `parlyz_heal`, `antidote`, `awakening`, `ice_heal`, `dawn_stone`,
  160. `dusk_stone`, `fire_stone`, `leaf_stone`, `moon_stone`, `oval_stone`,
  161. `shiny_stone`, `sun_stone`, `thunder_stone`, `water_stone`
  162. ) VALUES (
  163. '{$uid}', '20', '15', '10', '5', '20', '10', '5',
  164. '5', '5', '5', '5', '5', '5', '5', '5', '5',
  165. '5', '5', '5', '5', '5', '5', '5'
  166. );
  167. ");
  168.  
  169. if (isset($_GET['ref'])) {
  170. $refId = (int) $_GET['ref'];
  171. mysql_query("UPDATE `users` SET `Referals`=`Referals`+1 WHERE `id`='{$refId}'");
  172. }
  173.  
  174. $_SESSION['register'] = '<div class="success">'.$lang['register_success'].'</div>';
  175.  
  176. redirect('login.php');
  177. }
  178. }
  179.  
  180. $starterCells = array();
  181. foreach ($pokemonNames as $name) {
  182. $starterCells[] = '
  183. <label>
  184. <img src="images/pokemon/'.$name.'.png" alt="'.$name.'" /><br /><br />
  185. <input type="radio" name="pokemon" value="'.$name.'" />
  186. </label>
  187. ';
  188. }
  189.  
  190. include '_header.php';
  191. ?>
  192.  
  193. <div class="content">
  194. <div class="wrap">
  195. <table>
  196. <tr>
  197. <td>
  198. <div class="poke three"></div>
  199.  
  200. <div class="register">
  201.  
  202. <?=$errorMessage?>
  203.  
  204. <div class="title" align="center"><?=$lang['register_title']?></div>
  205.  
  206. <form action="" method="post" autocomplete="off">
  207. <table style=" text-align: left;">
  208. <tr class="block">
  209. <th><?=$lang['register_username']?></th>
  210. <td><input type="text" name="username" value="<?=htmlentities($username, ENT_QUOTES, 'UTF-8')?>" autofocus="on" /></td>
  211. </tr>
  212.  
  213. <tr class="block">
  214. <th><?=$lang['register_pwd']?></th>
  215. <td><input type="password" name="password" /></td>
  216. </tr>
  217.  
  218. <tr class="block">
  219. <th><?=$lang['register_pwd_again']?></th>
  220. <td><input type="password" name="password2" /></td>
  221. </tr>
  222.  
  223. <tr class="block">
  224. <th><?=$lang['register_email']?></th>
  225. <td><input type="text" name="email" value="<?=htmlentities($email, ENT_QUOTES, 'UTF-8')?>" /></td>
  226. </tr>
  227.  
  228. <tr class="block">
  229. <th colspan="2" style="vertical-align: top;"><?=$lang['register_starter']?></th>
  230. </tr>
  231.  
  232. <tr class="block">
  233. <td colspan="2">
  234. <table class="table" style="text-align: center">
  235. <?=cellsToRows($starterCells, DEFAULT_STARTER_COLUMNS)?>
  236. </table>
  237. </td>
  238. </tr>
  239.  
  240. <tr class="block">
  241. <th colspan="2"><?=$lang['register_captcha']?></th>
  242. </tr>
  243.  
  244. <tr>
  245. <td colspan="2"><?php echo recaptcha_get_html($publickey); ?></td>
  246. </tr>
  247.  
  248. <tr class="block">
  249. <td colspan="2"><center><input type="submit" value="<?=$lang['register_signup']?>" name="submit" class="button"></center></td>
  250. </tr>
  251. </table>
  252. </form>
  253. </div>
  254. <? include '_footer.php'; ?>
  255. </td>
  256. </tr>
  257. </table>
  258. </div>
  259. </div>
Add Comment
Please, Sign In to add comment