<?php
// Disclaimer : Vous pouvez partager cette source tout en gardant le copyright.
// Copyright respectif : Crée par ValentinH pour Owemu.fr
// Modifié par Blackdown pour Zone-Emu.fr
// Require the configuration.
require('config.php');
// Connect to the database.
$db = new mysqli($config['hote_mysql'], $config['user_mysql'], $config['pass_mysql']);
$db->select_db($config['baserealmd']);
// The class for register an user.
class verifyRegister
{
protected $db;
protected $username;
protected $password;
protected $password2;
protected $tbc;
protected $nbr;
protected $email;
private $cryptedPassword;
public function __construct($username, $password, $password2, $email, int $tbc, int $nbr)
{
$this->db = $GLOBALS['db'];
$this->username = $this->db->real_escape_string(strip_tags(htmlentities($username))); // Sécurisation nom d'utilisateur.
$this->password = $password; // Pas besoin de sécuriser l'entrée mot de passe, il n'est pas inséré dans la base de donneés.
$this->password2 = $password2; // Pas besoin de sécuriser l'entrée mot de passe, il n'est pas inséré dans la base de donneés.
$this->email = $email; // Pas besoin de sécuriser l'email ! Preg match vérifie déjà !
$this->tbc = $tbc; // Pas besoin de sécuriser l'entrée de l'extention, ceci va être vérifier au chiffre.
$this->nbr = $nbr; // Pas besoin de sécuriser l'entrée du """"captcha"""", ceci va être vérifier au chiffre.(Oué je met "" car sa génère pas de chiffre...)
$this->cryptedPassword = '';
$this->errorDetect = '';
$this->error = false;
}
public function verifyAll()
{
// Launch ALL function
$this->verifyCatpcha();
$this->verifyExpansion();
$this->verifyPassword();
$this->verifyUsername();
$this->verifyEmail();
if($this->error === false)
{
$this->cryptedPassword = sha1(strtoupper($this->username).':'.strtoupper($this->password));
$db->query("INSERT INTO account(username, sha_pass_hash, gmlevel, email, expansion) VALUES('".$this->username."', '".$this->cryptedPassword."', 0, '".$this->email."', '".$this->tbc."')");
echo 'Votre compte est crée, vous pouvez maintenant vous connecter et jouer.<br /><br />';
}
else
{
echo $this->errorDetect;
}
}
public function verifyExpansion()
{
if(is_numeric($this->tbc))
{
if($this->tbc !== 0 OR $this->tbc !== 1 OR $this->tbc !== 2 OR $this->tbc !== 3)
{
$this->error = true;
$this->errorDetect .= '- TemperDATA is detected. <br />';
}
}
else
{
$this->error = true;
$this->errorDetect .= '- TemperDATA is detected. <br />';
}
}
public function verifyCatpcha()
{
if(is_numeric($this->nbr))
{
if($this->nbr !== 0 OR $this->nbr !== 1 OR $this->nbr !== 2 OR $this->nbr !== 3)
{
$this->error = true;
$this->errorDetect .= '- Mauvais code catpcha entrée. <br />';
}
}
else
{
$this->error = true;
$this->errorDetect .= '- Mauvais code catpcha entrée. <br />';
}
}
public function verifyPassword()
{
if(strlen($this->password) <= 3 AND strlen(!$this->password) <= 25)
{
$this->error = true;
$this->errorDetect .= '- Mot de passe dépasse les caratères autorisé.';
}
if($this->password !== $this->password2)
{
$this->error = true;
$this->errorDetect .= '- La confirmation du mot de passe est invalide.';
}
}
public function verifyUsername()
{
// Le pseudo dois être entre 3 et 25 caratères, si ce n'est pas le cas, une erreur survient.
if(strlen($this->username) <= 3 AND strlen(!$this->username) <= 25)
{
$this->error = true;
$this->errorDetect .= '- Le nom d\'utilisateur dépasse les caratères autorisé. <br />';
}
// Sélectionne si le nom d'utilisateur est déjà utilisé dans la table account.
$sqlusername = $this->db->query('SELECT SQL_CACHE * FROM account WHERE username=\''.$this->username.'\'');
// Le nom d'utilisateur n'est pas égal à 0, cela veut signifier que il est déjà utilisé.
if($sqlusername->num_rows !== 0)
{
$this->error = true;
$this->errorDetect .= '- Ce nom d\'utilisateur n\'est pas disponible. <br />';
}
}
public function verifyEmail()
{
// Le pseudo dois être entre 3 et 25 caratères, si ce n'est pas le cas, une erreur survient.
if(strlen($this->email) <= 3 AND strlen(!$this->email) <= 25 AND VerifierAdresseMail($this->email))
{
$this->error = true;
$this->errorDetect .= 'L\'email dépasse les caratères autorisé.';
}
// Sélectionne si le nom d'utilisateur est déjà utilisé dans la table account.
$sqlemail = $this->db->query('SELECT SQL_CACHE * FROM account WHERE email=\''.$this->email.'\'');
// Le nom d'utilisateur n'est pas égal à 0, cela veut signifier que il est déjà utilisé.
if($sqlemail->num_rows != 0)
{
$this->error = true;
$this->errorDetect .= '- L\'email est déjà utilisé.';
}
}
}
// This $_POST variable are assembled here.
$username = $_POST['username'];
$password = $_POST['pass'];
$password2 = $_POST['pass2'];
$email = $_POST['email'];
$tbc = $_POST['tbc'];
$nbr = $_POST['nb'];
// This class is spawned here.
$reg = new verifyRegister($username, $password, $password2, $email, $tbc, $nbr);
// Launch class script...
$reg->verifyAll();
?>