Advertisement
Guest User

Untitled

a guest
Sep 28th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.84 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * @author Inconnu
  5. * @copyright 2011
  6. */
  7.  
  8. $compte = Array(
  9. 'host' => "127.0.0.1",//Host de votre compte mysql
  10. 'user' => "mangos", //Nom de votre compte mysql
  11. 'pass' => "mangos", //Pass de votre compte mysql
  12. 'db' => "realmd" //DB du site
  13. );
  14.  
  15. mysql_connect($compte['host'], $compte['user'], $compte['pass']) or die(mysql_error());
  16. mysql_select_db($compte['db']) or die(mysql_error());
  17.  
  18. define('USER_LENGHT', 3); // Taille minimum du nom de compte
  19. define('PASSWORD_LENGHT', 3); // Taille minimum du mot de passe
  20.  
  21. class Inscription
  22. {
  23. private $inscriptionID;
  24. private $username;
  25. private $password;
  26. private $passwordRepeat;
  27. private $cryptedPassword;
  28. private $email;
  29. private $inscriptionDate;
  30. private $extension;
  31. private $errorMsg;
  32. private $error;
  33. private $injection;
  34.  
  35. private function construct()
  36. {
  37. $this->inscriptionDate = date('Y-m-d H:i:s');
  38. $this->error = false;
  39. $this->errorMsg = '';
  40. $this->injection = false;
  41. $this->cryptedPassword = '';
  42. }
  43. private function verifyUsername()
  44. {
  45. if(strlen($this->username) <= USER_LENGHT)
  46. {
  47. $this->error = true;
  48. $this->errorMsg .= ' - Le nom d\'utilisateur choisi est trop court.<br />';
  49. }
  50. $sqlUsername = mysql_query('SELECT COUNT(*) AS nombre FROM account WHERE username=\'' . $this->username.'\'') or die('Comparaison des noms d\'utilisateur : '.mysql_error());
  51. $datasUsername = mysql_fetch_assoc($sqlUsername);
  52.  
  53. if($datasUsername['nombre'] == 1)
  54. {
  55. $this->error = true;
  56. $this->errorMsg .= ' - Ce nom d\'utilisateur est déjà pris.<br />';
  57. }
  58. $this->sqlDetect($this->username);
  59. }
  60. private function verifyPassword()
  61. {
  62. if(strlen($this->password) <= PASSWORD_LENGHT)
  63. {
  64. $this->error = true;
  65. $this->errorMsg .= ' - Le mot de passe choisi est trop court.<br />';
  66. }
  67. if (isset($_POST['conditions']) == null)
  68. {
  69. $this->error = true;
  70. $this->errorMsg .= ' - Les Conditions Générales d\'Utilisation ne sont pas acceptées.<br />';
  71. }
  72. if($this->password !== $this->passwordRepeat)
  73. {
  74. $this->error = true;
  75. $this->errorMsg .= ' - Les mots de passe ne sont pas identiques.<br />';
  76. }
  77. $this->sqlDetect($this->password);
  78. }
  79. private function verifyEmail()
  80. {
  81. if(!preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#', $this->email))
  82. {
  83. $this->error = true;
  84. $this->errorMsg .= ' - L\'email n\'est pas correct.<br />';
  85. }
  86. $sqlEmail = mysql_query('SELECT COUNT(*) AS nombre FROM account WHERE email=\''.$this->email.'\'') or die('Comparaison des emails : '.mysql_error());;
  87. $datasEmail = mysql_fetch_assoc($sqlEmail);
  88.  
  89. if($datasEmail['nombre'] != 0)
  90. {
  91. $this->error = true;
  92. $this->errorMsg .= ' - L\'email est déjà utilisé.<br />';
  93. }
  94. $this->sqlDetect($this->email);
  95. }
  96.  
  97. public function verifyAll()
  98. {
  99. $this->verifyUsername();
  100. $this->verifyEmail();
  101. $this->verifyPassword();
  102.  
  103. if(!$this->error)
  104. {
  105. $this->cryptedPassword = sha1(strtoupper($this->username).':'.strtoupper($this->password));
  106. mysql_query('INSERT INTO account(username,
  107. sha_pass_hash,
  108. email,
  109. joindate,
  110. last_ip,
  111. expansion)
  112. VALUES(\''.$this->username.'\',
  113. \''.$this->cryptedPassword.'\',
  114. \''.$this->email.'\',
  115. \''.$this->inscriptionDate.'\',
  116. \''.$_SERVER['REMOTE_ADDR'].'\',
  117. \''.$this->extension.'\')') or die('Enregistrement du compte : '.mysql_error());
  118. echo '<p class="info"><br /><br /><br />Votre enregistrement à été effectué avec succès !<br /><a href="inscription.php">Retour à l\'accueil</a></p>';
  119. }
  120. else
  121. {
  122. if($this->injection)
  123. {
  124. echo '<p class="info"><br /><br />On ne fait pas ça !</p>';
  125. }
  126. else
  127. {
  128. echo '<p class="info">Des erreurs ont été trouvée durant l\'enregistrement :<br /><br />',$this->errorMsg,'<br /><a href="inscription.php">Réessayer</a></p>';
  129. }
  130. }
  131. }
  132. private function sqlDetect($string)
  133. {
  134. if (preg_match('#INSERT|SELECT|UNION|FROM|WHERE|DELETE#', $string))
  135. {
  136. $this->error = true;
  137. $this->errorMsg .= ' - Injection sql detéctée !<br />';
  138. $this->injection = true;
  139. }
  140. }
  141. public function setUsername($username)
  142. {
  143. $this->username = mysql_real_escape_string($username);
  144. }
  145.  
  146. public function setPassword($password)
  147. {
  148. $this->password = mysql_real_escape_string($password);
  149. }
  150.  
  151. public function setPasswordRepeat($password)
  152. {
  153. $this->passwordRepeat = mysql_real_escape_string($password);
  154. }
  155.  
  156. public function setEmail($email)
  157. {
  158. $this->email = mysql_real_escape_string($email);
  159. }
  160.  
  161. public function setExtension($extension)
  162. {
  163. $this->extension = $extension;
  164. }
  165. }
  166.  
  167. /* Connexion à la base de données */
  168. mysql_connect($compte['host'], $compte['user'], $compte['pass']) or die(mysql_error());
  169. mysql_select_db($compte['db']) or die(mysql_error());
  170.  
  171. if(isset($_POST['ok']))
  172. {
  173. $joueur = new Inscription();
  174. $joueur->setUsername($_POST['username']);
  175. $joueur->setPassword($_POST['password']);
  176. $joueur->setPasswordRepeat($_POST['passwordRepeat']);
  177. $joueur->setEmail($_POST['email']);
  178. $joueur->setExtension($_POST['extension']);
  179. $joueur->verifyAll();
  180. }
  181. else
  182. {
  183. echo '
  184. <form action="" method="post">
  185. <table width="430" border="0" cellspacing="0" cellpadding="2" align="center">
  186. <tr>
  187.  
  188. <p style="text-align: left;">Pour vous inscrire et nous rejoindre sur notre serveur de jeu, il vous suffit simplement de remplir les champs ci-dessous !<br /> Les identifiants que vous choisirez lors de votre inscription seront ceux que vous utiliserez pour vous connecter à notre serveur une fois votre jeu lancé !</p>
  189. </tr>
  190. <br><br><br>
  191. <tr>
  192. <td colspan="2"><div id="erreurTxt" style="color:#F00;font-size:10px"></div></td>
  193. </tr>
  194. <tr>
  195. <td width="200" align="right" valign="top" class="TextSmall">Nom de compte :</td>
  196. <td><input name="username" type="text" size="25" maxlength="60" id="txtNomCompte" value="" autocomplete="off" />
  197.  
  198. </td>
  199. </tr>
  200. <tr>
  201. <td align="right" class="TextSmall">Adresse e-mail :</td>
  202. <td><input name="email" type="text" size="25" maxlength="60" id="txtEmail" value="" autocomplete="off" /></td>
  203. </tr>
  204. <tr>
  205. <td align="right" class="TextSmall">Mot de passe :</td>
  206. <td><input name="password" type="password" size="25" maxlength="60" id="txtPass" value="" autocomplete="off" /></td>
  207. </tr>
  208. <tr>
  209. <td align="right" class="TextSmall">Validation du mot de passe :</td>
  210. <td><input name="passwordRepeat" type="password" size="25" maxlength="60" id="txtValPass" value="" autocomplete="off"/></td>
  211. </tr>
  212. <tr>
  213. <td align="right" class="TextSmall">Type de jeu</td>
  214. <td>
  215. <select name="extension" id="selTypeJeu" class="TextXSmall">
  216. <option value="2">World of Warcraft Classique</option>
  217. <option value="1">World of Warcraft - The Burning Crusade</option>
  218. <option value="0">World of Warcraft - Wrath of the lich King</option>
  219. </select>
  220. </td>
  221. </tr>
  222.  
  223. <tr>
  224. <td colspan="2" align="right">
  225. <input type="submit" name="ok" id="Submit" value="Valider" /></td>
  226. </tr>
  227. </table>
  228. <center><br>
  229. Veuillez prendre note du règlement avant tout.<br>
  230. <input type="checkbox" name="conditions"><a href="#" target="_blank"><font color="#A05050"><u>Conditions générales d\'utilisation du serveur</u></font></a> lues et acceptées.<br><br>
  231. <font color="#A05050">Une fois votre inscription faite et donc cette case cochée, vous êtes tenus de respecter ces règles.</font></center>
  232. </form>
  233. <br><br><br><br>
  234. <center><b><u><big>Attention:</u></big></b> Vous devez impérativement posséder une adresse e-mail valide sinon vous ne pourrez pas effectuer de modifications sur votre compte (Changement de mot de passe, mot de passe perdu, ...).</center>';
  235. }
  236.  
  237. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement