Salut
,
Je vais vous faire une série de quatre tutoriels tout au long du mois, les quatre tutoriels seront sur la création d'un espace membre, cette semaine je vais faire la partie inscription, la seconde semaine sera sur la connexion, la troisième sur le profil et la dernière semaine sera basé sur l'édition du profil.
Faîtes attention quand vous allez c/C enlevez le BBCode qui s'est incrusté dans les SPOILER, RG bug et je ne peux pas les enlever. :@
J'utiliserai l'éditeur de texte Sublime Text 3.
https://reality-gaming.fr/attachments/djamel4-png.61409/
Donc commençons, nous allons créer une nouvelle base de donnée que nous appellerons "espace_membre" et dedans nous allons créer la table "membres" avec comme paramètres un id en auto-increment et avec un index primaire, pseudo et mail en VARCHAR de 255 et motdepasse en TEXT, voici ce que vous devriez avoir :
https://reality-gaming.fr/attachments/djamel4-png.61409/
Maintenant commençons à coder, créons un fichier "inscription.php" et ouvrez le.
Nous allons commencer par faire le formulaire d'inscription, je vous l'ai fais d'avance.
Faîtes attention quand vous allez c/C enlevez le BBCode qui s'est incrusté dans les SPOILER, RG bug et je ne peux pas les enlever. :@
J'utiliserai l'éditeur de texte Sublime Text 3.
https://reality-gaming.fr/attachments/djamel4-png.61409/
Donc commençons, nous allons créer une nouvelle base de donnée que nous appellerons "espace_membre" et dedans nous allons créer la table "membres" avec comme paramètres un id en auto-increment et avec un index primaire, pseudo et mail en VARCHAR de 255 et motdepasse en TEXT, voici ce que vous devriez avoir :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.

https://reality-gaming.fr/attachments/djamel4-png.61409/
Maintenant commençons à coder, créons un fichier "inscription.php" et ouvrez le.
Nous allons commencer par faire le formulaire d'inscription, je vous l'ai fais d'avance.
HTML:
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<title>#1 TUTO PHP | WhiiTe'</title>
</head>
<body align="center">
<h2>Inscription</h2>
<br />
<form method="POST">
<table align="center">
<tr>
<td align="right">
<label for="pseudo" >Pseudo :</label>
</td>
<td>
<input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail">Mail :</label>
</td>
<td>
<input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mail2">Confirmation du mail :</label>
</td>
<td>
<input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp">Mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" />
</td>
</tr>
<tr>
<td align="right">
<label for="mdp2">Confirmation du mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" />
</td>
</tr>
<tr>
<td></td>
<td align="center">
<br />
<input type="submit" name="register" value="Je m'inscris" />
</td>
</tr>
</table>
</form>
</body>
</html>
Si vous voulez changé le formulaire, ne touchez pas au "name" car c'est ce qui nous servira à lier l'input au PHP. 
Maintenant place au PHP, nous allons faire une vérification, c'est à dire que nous allons vérifier si l'utilisateur à rentrer son pseudo, son email et son mot de passe, mais tout en sécurisant le tout.

Maintenant place au PHP, nous allons faire une vérification, c'est à dire que nous allons vérifier si l'utilisateur à rentrer son pseudo, son email et son mot de passe, mais tout en sécurisant le tout.
PHP:
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');[/SIZE][/SIZE][/CENTER][/SIZE][/SIZE]
if(isset($_POST['register']))
{
$pseudo = htmlspecialchars(trim($_POST['pseudo']));
$mail = htmlspecialchars(trim($_POST['mail']));
$mail2 = htmlspecialchars(trim($_POST['mail2']));
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
{
Premièrement nous vérifions si l'utilisateur à cliqué sur le bouton "submit" puis nous sécurisons grâce à un "htmlspecialchars" qui sert à faire en sorte que si l'utilisateur est méchant et essaye de rentrer du code, son code sera prit en texte plein, c'est utile surtout si il y a un système de profil car si un utilisateur gentil va sur son profil, il aura le code écris et non exécuté, trim sert à enlever les espaces vides.
Vous allez me dire qu'il n'y a pas de "htmlspecialchars" mais "sha1" devant le mot de passe, c'est normal car nous ne voulons pas voir les mots de passes de vos membres, nous voulons que leurs mots de passes soient sur de ne pas être volé si un hackeur accède à votre base de donnée, donc nous les cryptons grâce à cette fonction, il existe aussi la fonction "md5" mais elle est moins sur, la toute première ligne de ce spoiler est la connexion à la base de donnée.
https://reality-gaming.fr/attachments/djamel4-png.61409/
Maintenant nous allons vérifier si les deux emails et les deux mots de passes que l'utilisateur a rentré sont identiques, et si l'adresse mail est correcte, c'est à dire si l'adresse mail comporte bien un @ et la fin en .fr (ou .com...).
Vous allez me dire qu'il n'y a pas de "htmlspecialchars" mais "sha1" devant le mot de passe, c'est normal car nous ne voulons pas voir les mots de passes de vos membres, nous voulons que leurs mots de passes soient sur de ne pas être volé si un hackeur accède à votre base de donnée, donc nous les cryptons grâce à cette fonction, il existe aussi la fonction "md5" mais elle est moins sur, la toute première ligne de ce spoiler est la connexion à la base de donnée.
https://reality-gaming.fr/attachments/djamel4-png.61409/
Maintenant nous allons vérifier si les deux emails et les deux mots de passes que l'utilisateur a rentré sont identiques, et si l'adresse mail est correcte, c'est à dire si l'adresse mail comporte bien un @ et la fin en .fr (ou .com...).
PHP:
$pseudolength = strlen($pseudo)if($pseudolength <= 25) {
if($mail == $mail2)
{
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($mdp == $mdp2)
{
Donc la nous allons calculer la longueur du pseudo grâce à une fonction "strlen", si le pseudo est inférieur ou égale à 25 caractères, nous passons à la deuxième vérification qui vérifie si les deux emails que l’utilisateur correspondent, si ils correspondent nous passons à l'étape suivante qui vérifie si le mail est bon, je vous ai expliqué plus haut, si le mail est bon nous vérifions si l'email n'existe pas déjà, si "$mailexist" est égale à 0, ce qui veut dire que l'email n'est pas dans la base de donnée, nous passons à la dernière étape de vérification, nous vérifions si les deux mots de passe correspondent, si ils correspondent bien nous insérons dans la base de donnée.
PHP:
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");$insertmbr->execute(array($pseudo, $mail, $mdp));}
Nous avons fait toutes les étapes de vérifications puis l’insertion dans la base de donnée.
Nous allons mettre des messages d'erreurs si, par exemple, l’utilisateur rentre 26 caractères, alors il aura un message sous le formulaire qui lui dis que la taille maximum est de 25 caractères.
Vous n'avez qu'à copier-coller en dessous de la requête SQL ce qui se trouve dans le SPOILER ci-dessous.
Nous allons mettre des messages d'erreurs si, par exemple, l’utilisateur rentre 26 caractères, alors il aura un message sous le formulaire qui lui dis que la taille maximum est de 25 caractères.
Vous n'avez qu'à copier-coller en dessous de la requête SQL ce qui se trouve dans le SPOILER ci-dessous.
PHP:
else $erreur = "Vos mots de passes ne correspondent pas !";
}
}
else
{
$erreur = "Adresse mail déjà utilisée !";
}
}
else
{
$erreur = "Votre adresse mail n'est pas valide !";
}
}
else
{
$erreur = "Vos adresses mail ne correspondent pas !";
}
}
else
{
$erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
}
}
else
{
$erreur = "Tous les champs doivent être complétés !";
}
}
Et en dessous de la fermeture de la balise "form" en dessous de votre page nous allons affiché l'erreur.
Et voila
c'est la fin de cette première partie, si vous avez un problème ou une question n'hésitez pas à m'envoyer un message privée en expliquant votre soucis.
PHP:
<?php if(isset($erreur)) { echo $erreur; } ?>
Et voila

Dernière édition par un modérateur: