Bonjour je vous présente un script d'inscription pour son local facile d'utilisation ! Vous devez juste modifier la partie ci-dessous en rentrant vos données .
Je tiens à dire que ce n'est pas mon script , je ne sais plus ou je l'ai pris il était sur mon PC depuis quelques mois .
Si la personne retrouve son script et ne souhaite pas sa publication qu'il me le signale en MP je l'enlèverais .
Vous ne devez modifier que cela
[code=php]
//---------------------------------------
// Titre du site, changez 'SERVEUR'
define('TITRE_SITE', 'Mon serveur WoW');
//--------------------------------------
// Configuration SQL
define('HOST', '127.0.0.1');
define('USER', 'VOTRE COMPTE WAMP');
define('PASSWORD', 'VOTRE PASSE WAMP');
define('REALM_DB', 'realmd');
//--------------------------------------
[/code]
[code=php]
<?php
// La classe qui gère l'inscription
include('class/inscription.class.php');
//---------------------------------------
// Titre du site, changez 'SERVEUR'
define('TITRE_SITE', 'Mon serveur WoW');
//--------------------------------------
// Configuration SQL
define('HOST', '127.0.0.1');
define('USER', 'VOTRE COMPTE WAMP');
define('PASSWORD', 'VOTRE PASSE WAMP');
define('REALM_DB', 'realmd');
//--------------------------------------
?>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Inscription</title>
<link rel="stylesheet" media="screen" type="text/css" title="Woltk" href="design/style.css" />
<link rel="shortcut icon" type="image/x-icon" href="design/wow.ico" />
</head>
<body>
<div id="corps">
<h1> Mon Serveur</h1>
<?php if(isset($_POST['ok']))
{
// connexion sql
mysql_connect(HOST, USER, PASSWORD) or die(mysql_error());
mysql_select_db(REALM_DB);
// on a cliqué, on fait les opérations
$joueur = new Inscription();
// définition des composantes
$joueur->setUsername($_POST['username']);
$joueur->setPassword($_POST['password']);
$joueur->setPasswordRepeat($_POST['passwordRepeat']);
$joueur->setEmail($_POST['email']);
$joueur->setExtension($_POST['extension']);
// enregistrement ou pas
$joueur->verifyAll();
}
else
{
?>
<form method="post">
<p>
Votre inscription sera effective dès que vous aurez rempli ce formulaire :<br />
<br />
<label for="label1">Nom de compte : </label><input name="username" id="label1" type="text" /><br />
<label for="label2">Adresse email : </label><input name="email" id="label2" type="text" /><br />
<label for="label3">Mot de passe : </label><input name="password" id="label3" type="password" /><br />
<label for="label4">Répétez le mot de passe : </label><input name="passwordRepeat" id="label4" type="password" /><br />
<label for="label5">Extension :</label>
<select name="extension" id="label5">
<option value="0">World of Warcraft</option>
<option value="1">Burning Crusade</option>
<option value="2" selected="selected">Wrath of the Lich King</option>
</select>
<br />
<br />
<input name="ok" value="" type="submit" />
</p>
</form>
<?php }
?>
</div>
</body>
</html>
[/code]
Et enfin inscription.class il vous faut créer un dossier class et mettre dedans le code , si vous n'êtes pas sûr de ce que vous faites , ne modifiez pas ce code .
[code=php]
<?php
/** Classe inscription
* Permet d'afficher une image antibot et de gérer l'inscription
*/
// Paramètres du script
//--------------------------------------
// la largeur minimale du nom d'utilisateur
define('USER_LENGHT', 3);
// la largeur minimale du mot de passe
define('PASSWORD_LENGHT', 3);
//---------------------------------------
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 = '';
}
//-------------------------
// MÉTHODES
//-------------------------
/** Vérifie le nom d'utilisateur */
private function verifyUsername()
{
// la taille.
if(strlen($this->username) <= USER_LENGHT)
{
$this->error = true;
$this->errorMsg .= ' - Le nom d\'utilisateur choisi est trop court.<br />';
}
// le nom d'utilisateur est déjà pris
$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 />';
}
// la chaine n'est pas une injection
$this->sqlDetect($this->username);
}
/** Vérifie le mot de passe */
private function verifyPassword()
{
// la taille
if(strlen($this->password) <= PASSWORD_LENGHT)
{
$this->error = true;
$this->errorMsg .= ' - Le mot de passe choisi est trop court.<br />';
}
// les mots de passe sont identiques
if($this->password !== $this->passwordRepeat)
{
$this->error = true;
$this->errorMsg .= ' - Les mots de passe ne sont pas identiques.<br />';
}
// la chaine n'est pas une injection
$this->sqlDetect($this->password);
}
/** Vérifie l'email */
private function verifyEmail()
{
// l'email est correct
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 />';
}
// l'email est déjà pris
// (>= 1 si jamais un admin à plusieurs comptes avec le même email)
$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 />';
}
// si la chaine n'est pas une injection
$this->sqlDetect($this->email);
}
public function verifyAll()
{
// vérification des données
$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,
gmlevel,
email,
joindate,
last_ip,
expansion)
VALUES(\''.$this->username.'\',
\''.$this->cryptedPassword.'\',
0,
\''.$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="index.php">Retour à l\'index</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="index.php">Réessayer</a></p>';
}
}
}
/** Détecte les injections sql */
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;
}
}
//-------------------------
// SETTERS
//-------------------------
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 = mysql_real_escape_string($extension);
}
}
?>
[/code]
Screen de la page d'inscription :
Pour le télécharger
Script_PHP_création_de_compte.rar - 3.0 Kb
Source : Cat121 (Félix) pour WoWDB.
J'espère que ce script vous a aidé !