PHP Inscription // MaNGOS
Bonjour, voici un système d'inscription !!!

Code PHP :
<?php

/**
 * @author Inconnu 
 * @copyright 2011
 */

$compte = Array(
    
'host' => "127.0.0.1",//Host de votre compte mysql
    
'user' => "mangos",     //Nom de votre compte mysql        
    
'pass' => "mangos",    //Pass de votre compte mysql        
    
'db' => "realmd"    //DB du site
);

mysql_connect($compte['host'], $compte['user'], $compte['pass']) or die(mysql_error());
mysql_select_db($compte['db']) or die(mysql_error());

define('USER_LENGHT'3);     // Taille minimum du nom de compte
define('PASSWORD_LENGHT'3); // Taille minimum du mot de passe

class Inscription
{
    private 
$inscriptionID;
    private 
$username;
    private 
$password;
    private 
$passwordRepeat;
    private 
$cryptedPassword;
    private 
$email;
    private 
$inscriptionDate;
    private 
$extension;
    private 
$errorMsg;
    private 
$error;
    private 
$injection;    
    
    private function 
construct()
    {
        
$this->inscriptionDate date('Y-m-d H:i:s');
        
$this->error false;
        
$this->errorMsg '';
        
$this->injection false;
        
$this->cryptedPassword '';
    }
    private function 
verifyUsername()
    {
        if(
strlen($this->username) <= USER_LENGHT)
        {
            
$this->error true;
            
$this->errorMsg .= ' - Le nom d\'utilisateur choisi est trop court.<br />';
        }
        
$sqlUsername mysql_query('SELECT COUNT(*) AS nombre FROM account WHERE username=\'' $this->username.'\'') or die('Comparaison des noms d\'utilisateur : '.mysql_error());
        
$datasUsername mysql_fetch_assoc($sqlUsername);

        if(
$datasUsername['nombre'] == 1)
        {
            
$this->error true;
            
$this->errorMsg .= ' - Ce nom d\'utilisateur est déjà pris.<br />';
        }
        
$this->sqlDetect($this->username);
    }
    private function 
verifyPassword()
    {
        if(
strlen($this->password) <= PASSWORD_LENGHT)
        {
            
$this->error true;
            
$this->errorMsg .= ' - Le mot de passe choisi est trop court.<br />';
        }
    if (isset(
$_POST['conditions']) == null)
    {
    
$this->error true;
    
$this->errorMsg .= ' - Les Conditions Générales d\'Utilisation ne sont pas acceptées.<br />';
    }
        if(
$this->password !== $this->passwordRepeat)
        {
            
$this->error true;
            
$this->errorMsg .= ' - Les mots de passe ne sont pas identiques.<br />';            
        }
        
$this->sqlDetect($this->password);
    }
    private function 
verifyEmail()
    {
        if(!
preg_match('#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z]{2,4}$#'$this->email))
        {
            
$this->error true;
            
$this->errorMsg .= ' - L\'email n\'est pas correct.<br />';
        }
        
$sqlEmail mysql_query('SELECT COUNT(*) AS nombre FROM account WHERE email=\''.$this->email.'\'') or die('Comparaison des emails : '.mysql_error());;
        
$datasEmail mysql_fetch_assoc($sqlEmail);

        if(
$datasEmail['nombre'] != 0)
        {
            
$this->error true;
            
$this->errorMsg .= ' - L\'email est déjà utilisé.<br />';
        }
        
$this->sqlDetect($this->email);
    }

    public function 
verifyAll()
    {
        
$this->verifyUsername();
        
$this->verifyEmail();
        
$this->verifyPassword();
        
        if(!
$this->error)
        {
            
$this->cryptedPassword sha1(strtoupper($this->username).':'.strtoupper($this->password));
            
mysql_query('INSERT INTO account(username,
                                            sha_pass_hash,
                                            email,
                                            joindate,
                                            last_ip,
                                            expansion)
                                    VALUES(\''
.$this->username.'\',
                                            \''
.$this->cryptedPassword.'\',
                                            \''
.$this->email.'\',
                                            \''
.$this->inscriptionDate.'\',
                                            \''
.$_SERVER['REMOTE_ADDR'].'\',
                                            \''
.$this->extension.'\')') or die('Enregistrement du compte : '.mysql_error());
            echo 
'<p class="info"><br /><br /><br />Votre enregistrement à été effectué avec succès !<br /><a href="inscription.php">Retour à l\'accueil</a></p>';
        }
        else
        {
            if(
$this->injection)
            {
                echo 
'<p class="info"><br /><br />On ne fait pas ça !</p>';
            }
            else
            {
                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>';
            }
        }
    }
    private function 
sqlDetect($string)
    {
        if (
preg_match('#INSERT|SELECT|UNION|FROM|WHERE|DELETE#'$string))
        {
            
$this->error true;
            
$this->errorMsg .= ' - Injection sql detéctée !<br />';
            
$this->injection true;
        }
    }
    public function 
setUsername($username)
    {
        
$this->username mysql_real_escape_string($username);
    }
    
    public function 
setPassword($password)
    {
        
$this->password mysql_real_escape_string($password);
    }
    
    public function 
setPasswordRepeat($password)
    {
        
$this->passwordRepeat mysql_real_escape_string($password);
    }
    
    public function 
setEmail($email)
    {
        
$this->email mysql_real_escape_string($email);
    }
    
    public function 
setExtension($extension)
    {
        
$this->extension $extension;
    }
}

/* Connexion à la base de données */
mysql_connect($compte['host'], $compte['user'], $compte['pass']) or die(mysql_error());
mysql_select_db($compte['db']) or die(mysql_error());

if(isset(
$_POST['ok']))
{
    
$joueur = new Inscription();
    
$joueur->setUsername($_POST['username']);
    
$joueur->setPassword($_POST['password']);
    
$joueur->setPasswordRepeat($_POST['passwordRepeat']);
    
$joueur->setEmail($_POST['email']);
    
$joueur->setExtension($_POST['extension']);
    
$joueur->verifyAll();   
}
else
{
echo 
'
<form action="" method="post">
<table width="430" border="0" cellspacing="0" cellpadding="2" align="center">
  <tr>
    
    <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>    
  </tr>
<br><br><br>
  <tr>
    <td colspan="2"><div id="erreurTxt" style="color:#F00;font-size:10px"></div></td>
  </tr>
  <tr>
    <td width="200" align="right" valign="top" class="TextSmall">Nom de compte :</td>
    <td><input name="username" type="text" size="25" maxlength="60" id="txtNomCompte" value="" autocomplete="off" />

    </td>
  </tr>
  <tr>
    <td align="right" class="TextSmall">Adresse e-mail :</td>
    <td><input name="email" type="text" size="25" maxlength="60" id="txtEmail" value="" autocomplete="off" /></td>
  </tr>
  <tr>
    <td align="right" class="TextSmall">Mot de passe :</td>
    <td><input name="password" type="password" size="25" maxlength="60" id="txtPass" value="" autocomplete="off" /></td>
  </tr>
  <tr>
    <td align="right" class="TextSmall">Validation du mot de passe :</td>
    <td><input name="passwordRepeat" type="password" size="25" maxlength="60" id="txtValPass" value="" autocomplete="off"/></td>
  </tr>
  <tr>
    <td align="right" class="TextSmall">Type de jeu</td>
    <td>
    <select name="extension" id="selTypeJeu" class="TextXSmall">
      <option value="2">World of Warcraft Classique</option>
      <option value="1">World of Warcraft - The Burning Crusade</option>
      <option value="0">World of Warcraft - Wrath of the lich King</option>
    </select>
    </td>
  </tr>

  <tr>
    <td colspan="2" align="right">
    <input type="submit" name="ok" id="Submit" value="Valider" /></td>
  </tr>
</table>
<center><br>
Veuillez prendre note du règlement avant tout.<br>
<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>
<font color="#A05050">Une fois votre inscription faite et donc cette case cochée, vous êtes tenus de respecter ces règles.</font></center>
</form>
<br><br><br><br>
<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>'
;
}

?>
C'est à toi ça ? Je ne crois pas ... Je l'ai vu autre part sur le forum ...
Tu as lu ? je crois pas ...

deathart a écrit :/**
* @author Inconnu
* @copyright 2011
*/

Merci de ta compréhension Smile
Dans ce cas on recherche et on voit que ça a déjà été posté Smile
Auteur : Cat121 sur WoWDB Smile
Lien vers le RIP de MacWarrior : http://www.wowdb.macwarrior.net/index2.p...14095.html

Et, merci pour le partage !
Merci SGT Clin

Retourner en haut Accueil