Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
#2 Espace membre - Connexion & Inscription
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Iktus" data-source="post: 6863920" data-attributes="member: 334036"><p style="text-align: center"><img src="http://image.prntscr.com/image/1a38d90afeed4241bacc2fe9baea2fa7.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p> <p style="text-align: center"></p> <p style="text-align: center">Bonjour, bonsoir,</p> <p style="text-align: center"></p> <p style="text-align: center"><a href="https://reality-gaming.fr/threads/1-espace-membre-le-design.572110/" target="_blank">Partie 1 -> Clique ici</a></p> <p style="text-align: center"></p> <p style="text-align: center">Aujourd'hui, nous allons passer à la suite de la série du développement d'un <strong><span style="color: #0080ff">espace membre assez complet</span></strong>.</p> <p style="text-align: center">Dans cette partie, nous allons faire le système de connexion et d'inscription, mais aussi quelque fonctions pour nous faciliter certaine chose.</p> <p style="text-align: center"></p> <p style="text-align: center">Votre serveur <strong><span style="color: #00b359">Apache</span></strong> et <strong><span style="color: #00b359">MySQL</span></strong> est fonctionnel ? Alors on peut commencer!</p> <p style="text-align: center">Tout d'abord, nous allons créer un dossier<strong><span style="color: #ff0080"> includes</span></strong> à la <strong><span style="color: #0000ff">racine</span></strong> de votre FTP (Je prends en compte que votre FTP est vide et que vous n'avez rien d'autre dedans)</p> <p style="text-align: center"></p> <p style="text-align: center">[SPOILER="Au cas où ..."]<img src="http://image.prntscr.com/image/c895080774824625a9be55b9f56aae31.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> [/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois <span style="color: #8000ff"><strong>celui-ci créé</strong></span>, vous allez vous <span style="color: #ff8000"><strong>rendre dedans</strong></span> et créer un fichier <span style="color: #ff00ff"><strong>configuration.php</strong></span></p> <p style="text-align: center">Dans ce fichier, nous allons mettre la <span style="color: #00b3b3"><strong>connectivité</strong></span> avec <span style="color: #ff0000"><strong>PDO</strong></span>.</p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">try</p> <p style="text-align: left">{</p> <p style="text-align: left"> $hostname = "127.0.0.1"; //Hôte</p> <p style="text-align: left"> $dbname = "rgtuto"; //Base de données</p> <p style="text-align: left"> $user = "root"; // Utilisateur</p> <p style="text-align: left"> $password = ""; // Mot de passe</p> <p style="text-align: left"></p> <p style="text-align: left"> $bdd = new PDO('mysql:host='.$hostname.';dbname='.$dbname.';charset=utf8', ''.$user.'', ''.$password.'', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));</p> <p style="text-align: left">} // Ne pas toucher</p> <p style="text-align: left"></p> <p style="text-align: left">catch(Exception $e)</p> <p style="text-align: left">{</p> <p style="text-align: left"> die('<span style="color:red;"><b>Une erreur est survenue !</b></span> <br />'. $e->getMessage()); // Message d'erreur avec l'erreur rencontré, mettre juste die('Votre message d'erreur'); pour afficher simplement votre message d'erreur seul</p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Et nous allons rajouter l'ouverture des sessions dans le fichier de configuration pour ne pas devoir se reconnecter à chaque modification dans la table des membres.</p> <p style="text-align: center"></p> <p style="text-align: left">[PHP]if(isset($_SESSION['id']))</p> <p style="text-align: left">{</p> <p style="text-align: left"> $req = $bdd->prepare("SELECT * FROM membres WHERE id = ?");</p> <p style="text-align: left"> $req->execute(array($_SESSION['id']));</p> <p style="text-align: left"> $info = $req->rowCount();</p> <p style="text-align: left"> if($info == 1)</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $info = $req->fetch();</p> <p style="text-align: left"> $_SESSION['id'] = $info['id'];</p> <p style="text-align: left"> $_SESSION['identifiant'] = $info['identifiant'];</p> <p style="text-align: left"> $_SESSION['motdepasse'] = $info['motdepasse'];</p> <p style="text-align: left"> $_SESSION['email'] = $info['email'];</p> <p style="text-align: left"> $_SESSION['avatar'] = $info['avatar'];</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Ce qui donne</p> <p style="text-align: center"></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">try</p> <p style="text-align: left">{</p> <p style="text-align: left"> $hostname = "127.0.0.1";</p> <p style="text-align: left"> $dbname = "rgtuto";</p> <p style="text-align: left"> $user = "root";</p> <p style="text-align: left"> $password = "";</p> <p style="text-align: left"></p> <p style="text-align: left"> $bdd = new PDO('mysql:host='.$hostname.';dbname='.$dbname.';charset=utf8', ''.$user.'', ''.$password.'', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));</p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">catch(Exception $e)</p> <p style="text-align: left">{</p> <p style="text-align: left"> die('<span style="color:red;"><b>Une erreur est survenue !</b></span> <br />'. $e->getMessage());</p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">if(isset($_SESSION['id']))</p> <p style="text-align: left">{</p> <p style="text-align: left"> $req = $bdd->prepare("SELECT * FROM membres WHERE id = ?");</p> <p style="text-align: left"> $req->execute(array($_SESSION['id']));</p> <p style="text-align: left"> $info = $req->rowCount();</p> <p style="text-align: left"> if($info == 1)</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $info = $req->fetch();</p> <p style="text-align: left"> $_SESSION['id'] = $info['id'];</p> <p style="text-align: left"> $_SESSION['identifiant'] = $info['identifiant'];</p> <p style="text-align: left"> $_SESSION['motdepasse'] = $info['motdepasse'];</p> <p style="text-align: left"> $_SESSION['email'] = $info['email'];</p> <p style="text-align: left"> $_SESSION['avatar'] = $info['avatar'];</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois cela de fait, vous allez <strong><span style="color: #59b300">vous rendre</span></strong> dans vos fichiers créé hier (<strong><span style="color: #0080ff">index.php</span></strong>, <strong><span style="color: #0080ff">login.php</span></strong>, <strong><span style="color: #0080ff">register.php</span></strong>) et rajouter</p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">session_start();</p> <p style="text-align: left"></p> <p style="text-align: left">require_once('includes/configuration.php');</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Donc, le <strong><span style="color: #0080ff">session_start();</span></strong> sert à initialiser et restaurer une session et le <strong><span style="color: #ff0000">require_once('');</span></strong> permet <strong><span style="color: #ff8000">d'inclure un fichier</span></strong>, il est identique à <strong><span style="color: #59b300">require</span></strong> et <strong><span style="color: #59b300">include</span></strong> mis à part que PHP vérifie si le fichier a déjà été inclus, et si c'est le cas, ne l'inclut pas une deuxième fois.</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois cela fais, nous allons <strong><span style="color: #ff0080">créer un base de données</span></strong>. Pour ma part je vais l'appeler <strong><span style="color: #00b359">rgtuto</span></strong> puis nous allons créer la table des membres.</p> <p style="text-align: center"></p> <p style="text-align: center">[SPOILER="Tutoriel en image"]</p> <p style="text-align: center">C'est Navicat car je ne sais pas utiliser phpMyAdmin sans m'énerver <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite129" alt=":d:" title="Regard de travers :d:" loading="lazy" data-shortname=":d:" /></p> <p style="text-align: center"><img src="http://image.prntscr.com/image/4e5cff0dd9d0443497419fcffaeaf8f9.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p> <p style="text-align: center"></p> <p style="text-align: center"><img src="http://image.prntscr.com/image/f742b017d3e6406d9051cc829c8a0084.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> [/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant que nous avons notre <strong><span style="color: #ff0000">base de données</span></strong> avec notre table <span style="color: #0080ff"><strong>membres</strong></span>, nous allons passer à la partie <strong><span style="color: #ff0000">PHP</span></strong></p> <p style="text-align: center"><strong><span style="color: #ff0000"></span></strong></p> <p style="text-align: center">On se redirige dans le dossier <strong><span style="color: #ff0000">includes</span></strong> puis on <strong><span style="color: #ff8000">crée</span></strong> un nouveau dossier nommé <strong><span style="color: #0080ff">php</span> </strong>et dans ce dossier on crée un fichier <strong><span style="color: #ff0080">login.code.php</span></strong> qui va comporter notre code <strong><span style="color: #ff0000">PHP</span></strong> permettant la <strong><span style="color: #b300b3">connexion</span></strong>.</p> <p style="text-align: center"></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left">// Si l'utilisateur est déjà connecté, alors on le redigire sur l'index</p> <p style="text-align: left"></p> <p style="text-align: left">if(isset($_SESSION['id']))</p> <p style="text-align: left">{</p> <p style="text-align: left"> header('Location: index');</p> <p style="text-align: left">exit();</p> <p style="text-align: left">}</p> <p style="text-align: left">else</p> <p style="text-align: left">{</p> <p style="text-align: left"></p> <p style="text-align: left">// Sinon il peut utiliser le formulaire</p> <p style="text-align: left"></p> <p style="text-align: left"> if(isset($_POST['connexion']))</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $identifiant = htmlspecialchars($_POST['identifiant']); // Ce qui sert pour le name="identifiant"</p> <p style="text-align: left"> $motdepasse = md5(sha1($_POST['motdepasse'])); // Ce qui sert pour le name="motdepasse"</p> <p style="text-align: left"></p> <p style="text-align: left"> if(!empty($identifiant) AND !empty($motdepasse))</p> <p style="text-align: left"> {</p> <p style="text-align: left"></p> <p style="text-align: left"> $req = $bdd->prepare('SELECT * FROM membres WHERE identifiant = ? AND motdepasse = ?');</p> <p style="text-align: left"> $req->execute(array($identifiant, $motdepasse));</p> <p style="text-align: left"> $exist = $req->rowCount();</p> <p style="text-align: left"></p> <p style="text-align: left"> if($exist == 1)</p> <p style="text-align: left"> {</p> <p style="text-align: left"></p> <p style="text-align: left"> // On enregistre en cookie l'identifiant et le mot de passe</p> <p style="text-align: left"></p> <p style="text-align: left"> if(isset($_POST['remember'])) {</p> <p style="text-align: left"> setcookie('identifiant',$identifiant,time()+365*24*3600,null,null,false,true);</p> <p style="text-align: left"> setcookie('motdepasse',$motdepasse,time()+365*24*3600,null,null,false,true);</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> // On ouvre les sessions</p> <p style="text-align: left"></p> <p style="text-align: left"> $backup = $req->fetch();</p> <p style="text-align: left"> $_SESSION['id'] = $backup['id'];</p> <p style="text-align: left"> $_SESSION['identifiant'] = $backup['identifiant'];</p> <p style="text-align: left"> $_SESSION['motdepasse'] = $backup['motdepasse'];</p> <p style="text-align: left"> $_SESSION['avatar'] = $backup['avatar'];</p> <p style="text-align: left"></p> <p style="text-align: left"> // On peut ici mettre ici -> $erreur = "Connexion réussi, redirection dans 3 secondes"; <- et modifier le header actuel par -> header("refresh:3;url=index"); <-</p> <p style="text-align: left"></p> <p style="text-align: left"> header('Location: index');</p> <p style="text-align: left">exit();</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"></p> <p style="text-align: left"> // Erreur si l'utilisateur ou le mot de passe est incorrect</p> <p style="text-align: left"></p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"></p> <p style="text-align: left"> <strong>Erreur!</strong> Votre nom d'utilisateur ou mot de passe est incorrect.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"></p> <p style="text-align: left"> // Erreur si tous les champs ne sont pas remplis, mais on peut utiliser un required dans notre code HTML mais il n'est pas prit en compte sur tous les navigateurs.</p> <p style="text-align: left"></p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"></p> <p style="text-align: left"> <strong>Erreur!</strong> Tous les champs ne sont pas remplis!</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Je vous ai détaillé en bref ce que chaque ligne signifie.</p> <p style="text-align: center">Une fois ce code mit dans votre fichier <span style="color: #0080ff"><strong>login.code.php</strong></span>, vous enregistrez et nous allons nous rendre dans le<span style="color: #ff0080"><strong> fichier</strong></span> <strong><span style="color: #ff8000">login.php</span></strong> situé à la <strong><span style="color: #b3b300">racine</span> </strong>et rajouter un autre <strong><span style="color: #ff0000">require_once</span></strong> pour inclure notre fichier <span style="color: #ff8000"><strong>login.code.php</strong></span> avec le code <strong><span style="color: #ff0000">PHP</span></strong>.</p> <p style="text-align: center"></p> <p style="text-align: center">Ce qui doit vous donnez maintenant</p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left">session_start();</p> <p style="text-align: left"></p> <p style="text-align: left">require_once('includes/configuration.php');</p> <p style="text-align: left">require_once('includes/php/login.code.php');</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant, nous allons faire en sorte que si il y a une erreur, elle s'affiche.</p> <p style="text-align: center">Donc on aura besoin de</p> <p style="text-align: left">[PHP]<?php if(isset($erreur)) { ?></p> <p style="text-align: left"></p> <p style="text-align: left"><?php echo $erreur ?></p> <p style="text-align: left"><?php } ?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Vous le placez où vous voulez que l'erreur apparaisse.</p> <p style="text-align: center">[SPOILER="Pour ma part ..."]</p> <p style="text-align: center"><img src="http://image.prntscr.com/image/ac50f62e766847eb8d246a694a0d3eaf.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> [/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">Normalement, si vous avez suivi correctement le tutoriel numéro 1, une erreur doit s'afficher si vous rentrez de <strong><span style="color: #ff0000">fausse information</span></strong>.</p> <p style="text-align: center">Maintenant si vous voulez tester que tout fonctionne, il vous suffit de créer un utilisateur depuis votre <span style="color: #0059b3"><strong>base de données</strong></span>, pour le mot de passe, on va utiliser <strong><span style="color: #b30000">azerty</span></strong>, alors dans la colonne <strong><span style="color: #ff4dff">motdepasse</span></strong>, on va mettre <span style="color: #b300b3"><strong>7b95dafa9ecb37dafa761f8bafc76b0a</strong></span>.</p> <p style="text-align: center"></p> <p style="text-align: center">Si tout c'est bien passé, vous allez être redirigé sur l'<strong><span style="color: #0080ff">index</span></strong>, et vous <strong><span style="color: #ff0000">ne pourrez plus</span></strong> vous rendre sur le page <strong><span style="color: #b3b300">login.php </span></strong>sans que vous soyez <strong><span style="color: #00b3b3">aussi redirigé</span></strong> sur l'<span style="color: #0080ff"><strong>index</strong></span>, on va donc créer un fichier <strong><span style="color: #5900b3">logout.php</span></strong> permettant la <span style="color: #006666"><strong>déconnexion</strong></span>.</p> <p style="text-align: center"></p> <p style="text-align: center">Je vous laisse faire le design de votre page de déconnexion <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center">[SPOILER='Ma jolie page ^^"']<img src="http://image.prntscr.com/image/cf4cd7e890874044bc684c01f20be8c6.png" alt="" class="fr-fic fr-dii fr-draggable " style="" />[/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">Normalement, vous avez que du HTML sur cette page, vous allez ajouter maintenant</p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">session_start();</p> <p style="text-align: left">$_SESSION = array();</p> <p style="text-align: left">session_destroy();</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Pas besoin d'explication, il n'y a que 3 lignes <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite375" alt=":trollface:" title="Trollface :trollface:" loading="lazy" data-shortname=":trollface:" /></p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons attaquer la partie inscription <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center">On retourne dans le dossier <strong><span style="color: #ff0000">php</span></strong> ce trouvant dans <strong><span style="color: #ff0000">includes</span></strong> et nous créons le fichier <strong><span style="color: #0080ff">register.code.php</span></strong>, et l'on colle ce code</p> <p style="text-align: center"></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">// Si l'utilisateur est déjà connecté, alors on le redigire sur l'index</p> <p style="text-align: left"></p> <p style="text-align: left">if(isset($_SESSION['id']))</p> <p style="text-align: left">{</p> <p style="text-align: left"> header('Location: index');</p> <p style="text-align: left">exit();</p> <p style="text-align: left">}</p> <p style="text-align: left">else</p> <p style="text-align: left">{</p> <p style="text-align: left"></p> <p style="text-align: left">// Sinon il peut utiliser le formulaire</p> <p style="text-align: left"></p> <p style="text-align: left"> if(isset($_POST['inscription']))</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $identifiant = htmlspecialchars($_POST['identifiant']); // Ce qui sert pour le name="identifiant"</p> <p style="text-align: left"> $email = htmlspecialchars($_POST['email']); // Ce qui sert pour le name="email"</p> <p style="text-align: left"> $motdepasse = md5(sha1($_POST['motdepasse'])); // Ce qui sert pour le name="motdepasse"</p> <p style="text-align: left"> $motdepasse_confirme = md5(sha1($_POST['motdepasse_confirme'])); // Ce qui sert pour le name="motdepasse_confirme"</p> <p style="text-align: left"> $avatar = htmlspecialchars("/images/1.jpg"); // Lien vers l'image que vous donnerez au utilisateur lors de l'inscription</p> <p style="text-align: left"></p> <p style="text-align: left"> if(!empty($_POST['identifiant']) AND !empty($_POST['email']) AND !empty($_POST['motdepasse']) AND !empty($_POST['motdepasse_confirme'])) // Les champs qui seront obligatoire d'être remplis dans le formulaire</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $l_peudo = strlen($identifiant);</p> <p style="text-align: left"></p> <p style="text-align: left"> if($l_peudo > 25) // Longueur maximal d'un nom d'utilisateur</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $erreur = "Identifiant trop long";</p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $req = $bdd->prepare("SELECT * FROM membres WHERE identifiant = ?");</p> <p style="text-align: left"> $req->execute(array($identifiant));</p> <p style="text-align: left"> $userexist = $req->rowCount();</p> <p style="text-align: left"> if($userexist == 0)</p> <p style="text-align: left"> {</p> <p style="text-align: left"> if(filter_var($email, FILTER_VALIDATE_EMAIL))</p> <p style="text-align: left"> {</p> <p style="text-align: left"> if($motdepasse == $motdepasse_confirme) // On vérifie que le mot de passe est identique</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $reqinsert = $bdd->prepare('INSERT INTO membres(identifiant, email, motdepasse, avatar) VALUES(?, ?, ?, ?)');</p> <p style="text-align: left"> $reqinsert->execute(array($identifiant, $email, $motdepasse, $avatar));</p> <p style="text-align: left"></p> <p style="text-align: left"> // Si tout c'est bien passé, on affiche ce message</p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-success\"></p> <p style="text-align: left"> <strong>Succès!</strong> Votre compte est maintenant créé.<br> Vous pouvez dès à présent vous connecter.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"> header('Refresh: 3; login');</p> <p style="text-align: left">exit();</p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"> // Si les mots de passe ne sont pas identique</p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"></p> <p style="text-align: left"> <strong>Erreur!</strong> Les mots de passe ne sont pas identique.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"> }</p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"> // Si l'email est invalide</p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"></p> <p style="text-align: left"> <strong>Erreur!</strong> Email invalide.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"> }</p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"> // Si l'identifiant est déjà utilisé</p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"></p> <p style="text-align: left"> <strong>Erreur!</strong> Ce identifiant est déjà utilisé.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"> }</p> <p style="text-align: left"> }</p> <p style="text-align: left"> }</p> <p style="text-align: left"> else</p> <p style="text-align: left"> {</p> <p style="text-align: left"> // Si tous les champs ne sont pas remplis</p> <p style="text-align: left"> $erreur = "<div class=\"alert alert-danger\"><strong>Erreur!</strong> Tous les champs ne sont pas remplis.</p> <p style="text-align: left"> </div>";</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois cela de fait, vous <strong><span style="color: #b3b300">enregistrez</span></strong> et on retourne dans <strong><span style="color: #0080ff">register.php</span></strong> qui est à la <strong><span style="color: #b300b3">racine</span></strong>.</p> <p style="text-align: center"></p> <p style="text-align: center">Vous allez faire comme pour le <strong><span style="color: #0059b3">login.php</span></strong>, vous allez placer un <span style="color: #ff0000"><strong>require_once</strong></span> allant chercher notre fichier <strong><span style="color: #b30000">register.code.php</span></strong></p> <p style="text-align: center"><strong><span style="color: #b30000"></span></strong></p> <p style="text-align: center">Ce qui doit vous donner</p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left">session_start();</p> <p style="text-align: left"></p> <p style="text-align: left">require_once('includes/configuration.php');</p> <p style="text-align: left">require_once('includes/php/register.code.php');</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons aussi rajouter le code permettant d'afficher les erreurs.</p> <p style="text-align: left">[PHP]<?php if(isset($erreur)) { ?></p> <p style="text-align: left"></p> <p style="text-align: left"><?php echo $erreur ?></p> <p style="text-align: left"><?php } ?>[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center">À vous de le placer où vous le souhaitez <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center"></p> <p style="text-align: center">Normalement, si vous avez tout bien suivi, tout devrait marcher <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center"></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: #ff0000"><strong>[FA]fa-arrow-down[/FA]</strong></span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: #ff0000"><strong>[FA]fa-arrow-right[/FA]BONUS [FA]fa-arrow-left[/FA]</strong></span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: #ff0000"><span style="font-size: 22px"><strong>[FA]fa-arrow-up[/FA]</strong></span></span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: #ff0000"></span></span></p> <p style="text-align: center"><span style="font-size: 15px">Maintenant nous allons utiliser les <strong><span style="color: #ff0000">functions</span></strong>.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Donc alors, nous allons nous rendre dans <strong><span style="color: #ff0000">notre base de données</span></strong> et créer une <span style="color: #00b3b3"><strong>table configuration</strong></span> comportant <strong><span style="color: #666600">les colonnes</span></strong> : <strong><span style="color: #b30059">nom</span></strong> - <strong><span style="color: #b30059">description</span></strong> - <span style="color: #b30059"><strong>auteur</strong></span>.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">[SPOILER="Type à mettre"]<img src="http://image.prntscr.com/image/78531471550f466ba42e7ab8b44eed30.png" alt="" class="fr-fic fr-dii fr-draggable " style="" />[/SPOILER] </span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Une fois cela de fait, on se rend dans notre dossier <strong><span style="color: #ff0000">includes</span></strong> puis on crée le dossier <strong><span style="color: #ff0000">fonctions </span></strong>et on crée un fichier nommé <strong><span style="color: #0080ff">configuration.fonction.php</span></strong></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Dans ce fichier vous allez mettre</span></p> <p style="text-align: center"></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">function Configuration($str)</p> <p style="text-align: left">{</p> <p style="text-align: left"> static $row;</p> <p style="text-align: left"> global $bdd;</p> <p style="text-align: left"></p> <p style="text-align: left"> if (!$row)</p> <p style="text-align: left"> {</p> <p style="text-align: left"> $stm = $bdd->query("SELECT * FROM configuration");</p> <p style="text-align: left"> $row = $stm->fetch();</p> <p style="text-align: left"> }</p> <p style="text-align: left"> return $row[$str];</p> <p style="text-align: left">}</p> <p style="text-align: left"></p> <p style="text-align: left">?>[/PHP]</p> <p style="text-align: center"></p> <p style="text-align: center"><span style="font-size: 15px">En gros, on utilisera la fonction <strong><span style="color: #ff0000">Configuration</span></strong> pour afficher les données dans la table <strong><span style="color: #0080ff">configuration</span></strong></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Une fois cela de fait, vous allez ajouter un <strong><span style="color: #ff0000">require_once</span></strong> qui inclura notre fichier <span style="color: #0080ff"><strong>configuration.fonction.php</strong></span>, vous pouvez le mettre dans<strong><span style="color: #0080ff"> tout nos fichiers de racine</span></strong>, comme ça, pas besoin de faire plusieurs modification, une seul suffira pour tout modifier <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite171" alt=":D" title="Awesome face :D" loading="lazy" data-shortname=":D" /> </span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Le fonctionnement est simple, si vous voulez afficher le texte qu'il y a dans votre table <span style="color: #b30059"><strong>nom</strong></span>, vous allez mettre</span></p><p><span style="font-size: 15px">[PHP]<?php echo Configuration('nom'); ?>[/PHP]</span></p><p style="text-align: center"><span style="font-size: 15px">Si vous voulez la description, alors à la place de <strong><span style="color: #ff8000">nom</span></strong>, vous allez mettre <span style="color: #b30000"><strong>description</strong></span>, c'est tout simple, et très utilise <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">N'hésitez pas à me dire si vous n'avez pas compris certaine chose <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></span></p> <p style="text-align: center"><span style="font-size: 15px">Bonne journée/soirée à vous <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite171" alt=":D" title="Awesome face :D" loading="lazy" data-shortname=":D" /></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Télécharger le projet: <a href="https://mega.nz/#!0dw2Fa6D!If8Pjdo8lbpu6R2Yeqat89h3yC3NV6raaOBwAyPL07Q" target="_blank">Clique ici</a></span></p> <p style="text-align: center">Nouveau fichier SQL: <a href="https://mega.nz/#!oFwBTAYQ!0glAzW6kgmHZbQMaHWEbyrjFoRkt5sHfJd5SICfniSM" target="_blank">Clique ici</a></p> <p style="text-align: center"></p></blockquote><p></p>
[QUOTE="Iktus, post: 6863920, member: 334036"] [CENTER][IMG]http://image.prntscr.com/image/1a38d90afeed4241bacc2fe9baea2fa7.png[/IMG] Bonjour, bonsoir, [URL='https://reality-gaming.fr/threads/1-espace-membre-le-design.572110/']Partie 1 -> Clique ici[/URL] Aujourd'hui, nous allons passer à la suite de la série du développement d'un [B][COLOR=#0080ff]espace membre assez complet[/COLOR][/B]. Dans cette partie, nous allons faire le système de connexion et d'inscription, mais aussi quelque fonctions pour nous faciliter certaine chose. Votre serveur [B][COLOR=#00b359]Apache[/COLOR][/B] et [B][COLOR=#00b359]MySQL[/COLOR][/B] est fonctionnel ? Alors on peut commencer! Tout d'abord, nous allons créer un dossier[B][COLOR=#ff0080] includes[/COLOR][/B] à la [B][COLOR=#0000ff]racine[/COLOR][/B] de votre FTP (Je prends en compte que votre FTP est vide et que vous n'avez rien d'autre dedans) [SPOILER="Au cas où ..."][IMG]http://image.prntscr.com/image/c895080774824625a9be55b9f56aae31.png[/IMG] [/SPOILER] Une fois [COLOR=#8000ff][B]celui-ci créé[/B][/COLOR], vous allez vous [COLOR=#ff8000][B]rendre dedans[/B][/COLOR] et créer un fichier [COLOR=#ff00ff][B]configuration.php[/B][/COLOR] Dans ce fichier, nous allons mettre la [COLOR=#00b3b3][B]connectivité[/B][/COLOR] avec [COLOR=#ff0000][B]PDO[/B][/COLOR].[/CENTER] [LEFT][PHP]<?php try { $hostname = "127.0.0.1"; //Hôte $dbname = "rgtuto"; //Base de données $user = "root"; // Utilisateur $password = ""; // Mot de passe $bdd = new PDO('mysql:host='.$hostname.';dbname='.$dbname.';charset=utf8', ''.$user.'', ''.$password.'', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } // Ne pas toucher catch(Exception $e) { die('<span style="color:red;"><b>Une erreur est survenue !</b></span> <br />'. $e->getMessage()); // Message d'erreur avec l'erreur rencontré, mettre juste die('Votre message d'erreur'); pour afficher simplement votre message d'erreur seul } ?>[/PHP][/LEFT] [CENTER] Et nous allons rajouter l'ouverture des sessions dans le fichier de configuration pour ne pas devoir se reconnecter à chaque modification dans la table des membres. [/CENTER] [LEFT][PHP]if(isset($_SESSION['id'])) { $req = $bdd->prepare("SELECT * FROM membres WHERE id = ?"); $req->execute(array($_SESSION['id'])); $info = $req->rowCount(); if($info == 1) { $info = $req->fetch(); $_SESSION['id'] = $info['id']; $_SESSION['identifiant'] = $info['identifiant']; $_SESSION['motdepasse'] = $info['motdepasse']; $_SESSION['email'] = $info['email']; $_SESSION['avatar'] = $info['avatar']; } }[/PHP][/LEFT] [CENTER] Ce qui donne [/CENTER] [LEFT][PHP]<?php try { $hostname = "127.0.0.1"; $dbname = "rgtuto"; $user = "root"; $password = ""; $bdd = new PDO('mysql:host='.$hostname.';dbname='.$dbname.';charset=utf8', ''.$user.'', ''.$password.'', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch(Exception $e) { die('<span style="color:red;"><b>Une erreur est survenue !</b></span> <br />'. $e->getMessage()); } if(isset($_SESSION['id'])) { $req = $bdd->prepare("SELECT * FROM membres WHERE id = ?"); $req->execute(array($_SESSION['id'])); $info = $req->rowCount(); if($info == 1) { $info = $req->fetch(); $_SESSION['id'] = $info['id']; $_SESSION['identifiant'] = $info['identifiant']; $_SESSION['motdepasse'] = $info['motdepasse']; $_SESSION['email'] = $info['email']; $_SESSION['avatar'] = $info['avatar']; } } ?>[/PHP][/LEFT] [CENTER] Une fois cela de fait, vous allez [B][COLOR=#59b300]vous rendre[/COLOR][/B] dans vos fichiers créé hier ([B][COLOR=#0080ff]index.php[/COLOR][/B], [B][COLOR=#0080ff]login.php[/COLOR][/B], [B][COLOR=#0080ff]register.php[/COLOR][/B]) et rajouter[/CENTER] [LEFT][PHP]<?php session_start(); require_once('includes/configuration.php'); ?>[/PHP][/LEFT] [CENTER] Donc, le [B][COLOR=#0080ff]session_start();[/COLOR][/B] sert à initialiser et restaurer une session et le [B][COLOR=#ff0000]require_once('');[/COLOR][/B] permet [B][COLOR=#ff8000]d'inclure un fichier[/COLOR][/B], il est identique à [B][COLOR=#59b300]require[/COLOR][/B] et [B][COLOR=#59b300]include[/COLOR][/B] mis à part que PHP vérifie si le fichier a déjà été inclus, et si c'est le cas, ne l'inclut pas une deuxième fois. Une fois cela fais, nous allons [B][COLOR=#ff0080]créer un base de données[/COLOR][/B]. Pour ma part je vais l'appeler [B][COLOR=#00b359]rgtuto[/COLOR][/B] puis nous allons créer la table des membres. [SPOILER="Tutoriel en image"] C'est Navicat car je ne sais pas utiliser phpMyAdmin sans m'énerver (d) [IMG]http://image.prntscr.com/image/4e5cff0dd9d0443497419fcffaeaf8f9.png[/IMG] [IMG]http://image.prntscr.com/image/f742b017d3e6406d9051cc829c8a0084.png[/IMG] [/SPOILER] Maintenant que nous avons notre [B][COLOR=#ff0000]base de données[/COLOR][/B] avec notre table [COLOR=#0080ff][B]membres[/B][/COLOR], nous allons passer à la partie [B][COLOR=#ff0000]PHP [/COLOR][/B] On se redirige dans le dossier [B][COLOR=#ff0000]includes[/COLOR][/B] puis on [B][COLOR=#ff8000]crée[/COLOR][/B] un nouveau dossier nommé [B][COLOR=#0080ff]php[/COLOR] [/B]et dans ce dossier on crée un fichier [B][COLOR=#ff0080]login.code.php[/COLOR][/B] qui va comporter notre code [B][COLOR=#ff0000]PHP[/COLOR][/B] permettant la [B][COLOR=#b300b3]connexion[/COLOR][/B]. [/CENTER] [LEFT][PHP]<?php // Si l'utilisateur est déjà connecté, alors on le redigire sur l'index if(isset($_SESSION['id'])) { header('Location: index'); exit(); } else { // Sinon il peut utiliser le formulaire if(isset($_POST['connexion'])) { $identifiant = htmlspecialchars($_POST['identifiant']); // Ce qui sert pour le name="identifiant" $motdepasse = md5(sha1($_POST['motdepasse'])); // Ce qui sert pour le name="motdepasse" if(!empty($identifiant) AND !empty($motdepasse)) { $req = $bdd->prepare('SELECT * FROM membres WHERE identifiant = ? AND motdepasse = ?'); $req->execute(array($identifiant, $motdepasse)); $exist = $req->rowCount(); if($exist == 1) { // On enregistre en cookie l'identifiant et le mot de passe if(isset($_POST['remember'])) { setcookie('identifiant',$identifiant,time()+365*24*3600,null,null,false,true); setcookie('motdepasse',$motdepasse,time()+365*24*3600,null,null,false,true); } // On ouvre les sessions $backup = $req->fetch(); $_SESSION['id'] = $backup['id']; $_SESSION['identifiant'] = $backup['identifiant']; $_SESSION['motdepasse'] = $backup['motdepasse']; $_SESSION['avatar'] = $backup['avatar']; // On peut ici mettre ici -> $erreur = "Connexion réussi, redirection dans 3 secondes"; <- et modifier le header actuel par -> header("refresh:3;url=index"); <- header('Location: index'); exit(); } else { // Erreur si l'utilisateur ou le mot de passe est incorrect $erreur = "<div class=\"alert alert-danger\"> <strong>Erreur!</strong> Votre nom d'utilisateur ou mot de passe est incorrect. </div>"; } } else { // Erreur si tous les champs ne sont pas remplis, mais on peut utiliser un required dans notre code HTML mais il n'est pas prit en compte sur tous les navigateurs. $erreur = "<div class=\"alert alert-danger\"> <strong>Erreur!</strong> Tous les champs ne sont pas remplis! </div>"; } } } ?>[/PHP][/LEFT] [CENTER] Je vous ai détaillé en bref ce que chaque ligne signifie. Une fois ce code mit dans votre fichier [COLOR=#0080ff][B]login.code.php[/B][/COLOR], vous enregistrez et nous allons nous rendre dans le[COLOR=#ff0080][B] fichier[/B][/COLOR] [B][COLOR=#ff8000]login.php[/COLOR][/B] situé à la [B][COLOR=#b3b300]racine[/COLOR] [/B]et rajouter un autre [B][COLOR=#ff0000]require_once[/COLOR][/B] pour inclure notre fichier [COLOR=#ff8000][B]login.code.php[/B][/COLOR] avec le code [B][COLOR=#ff0000]PHP[/COLOR][/B]. Ce qui doit vous donnez maintenant[/CENTER] [LEFT][PHP]<?php session_start(); require_once('includes/configuration.php'); require_once('includes/php/login.code.php'); ?>[/PHP][/LEFT] [CENTER] Maintenant, nous allons faire en sorte que si il y a une erreur, elle s'affiche. Donc on aura besoin de[/CENTER] [LEFT][PHP]<?php if(isset($erreur)) { ?> <?php echo $erreur ?> <?php } ?>[/PHP][/LEFT] [CENTER] Vous le placez où vous voulez que l'erreur apparaisse. [SPOILER="Pour ma part ..."] [IMG]http://image.prntscr.com/image/ac50f62e766847eb8d246a694a0d3eaf.png[/IMG] [/SPOILER] Normalement, si vous avez suivi correctement le tutoriel numéro 1, une erreur doit s'afficher si vous rentrez de [B][COLOR=#ff0000]fausse information[/COLOR][/B]. Maintenant si vous voulez tester que tout fonctionne, il vous suffit de créer un utilisateur depuis votre [COLOR=#0059b3][B]base de données[/B][/COLOR], pour le mot de passe, on va utiliser [B][COLOR=#b30000]azerty[/COLOR][/B], alors dans la colonne [B][COLOR=#ff4dff]motdepasse[/COLOR][/B], on va mettre [COLOR=#b300b3][B]7b95dafa9ecb37dafa761f8bafc76b0a[/B][/COLOR]. Si tout c'est bien passé, vous allez être redirigé sur l'[B][COLOR=#0080ff]index[/COLOR][/B], et vous [B][COLOR=#ff0000]ne pourrez plus[/COLOR][/B] vous rendre sur le page [B][COLOR=#b3b300]login.php [/COLOR][/B]sans que vous soyez [B][COLOR=#00b3b3]aussi redirigé[/COLOR][/B] sur l'[COLOR=#0080ff][B]index[/B][/COLOR], on va donc créer un fichier [B][COLOR=#5900b3]logout.php[/COLOR][/B] permettant la [COLOR=#006666][B]déconnexion[/B][/COLOR]. Je vous laisse faire le design de votre page de déconnexion :) [SPOILER='Ma jolie page ^^"'][IMG]http://image.prntscr.com/image/cf4cd7e890874044bc684c01f20be8c6.png[/IMG][/SPOILER] Normalement, vous avez que du HTML sur cette page, vous allez ajouter maintenant[/CENTER] [LEFT][PHP]<?php session_start(); $_SESSION = array(); session_destroy(); ?>[/PHP][/LEFT] [CENTER] Pas besoin d'explication, il n'y a que 3 lignes :troll: Maintenant nous allons attaquer la partie inscription :) On retourne dans le dossier [B][COLOR=#ff0000]php[/COLOR][/B] ce trouvant dans [B][COLOR=#ff0000]includes[/COLOR][/B] et nous créons le fichier [B][COLOR=#0080ff]register.code.php[/COLOR][/B], et l'on colle ce code [/CENTER] [LEFT][PHP]<?php // Si l'utilisateur est déjà connecté, alors on le redigire sur l'index if(isset($_SESSION['id'])) { header('Location: index'); exit(); } else { // Sinon il peut utiliser le formulaire if(isset($_POST['inscription'])) { $identifiant = htmlspecialchars($_POST['identifiant']); // Ce qui sert pour le name="identifiant" $email = htmlspecialchars($_POST['email']); // Ce qui sert pour le name="email" $motdepasse = md5(sha1($_POST['motdepasse'])); // Ce qui sert pour le name="motdepasse" $motdepasse_confirme = md5(sha1($_POST['motdepasse_confirme'])); // Ce qui sert pour le name="motdepasse_confirme" $avatar = htmlspecialchars("/images/1.jpg"); // Lien vers l'image que vous donnerez au utilisateur lors de l'inscription if(!empty($_POST['identifiant']) AND !empty($_POST['email']) AND !empty($_POST['motdepasse']) AND !empty($_POST['motdepasse_confirme'])) // Les champs qui seront obligatoire d'être remplis dans le formulaire { $l_peudo = strlen($identifiant); if($l_peudo > 25) // Longueur maximal d'un nom d'utilisateur { $erreur = "Identifiant trop long"; } else { $req = $bdd->prepare("SELECT * FROM membres WHERE identifiant = ?"); $req->execute(array($identifiant)); $userexist = $req->rowCount(); if($userexist == 0) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { if($motdepasse == $motdepasse_confirme) // On vérifie que le mot de passe est identique { $reqinsert = $bdd->prepare('INSERT INTO membres(identifiant, email, motdepasse, avatar) VALUES(?, ?, ?, ?)'); $reqinsert->execute(array($identifiant, $email, $motdepasse, $avatar)); // Si tout c'est bien passé, on affiche ce message $erreur = "<div class=\"alert alert-success\"> <strong>Succès!</strong> Votre compte est maintenant créé.<br> Vous pouvez dès à présent vous connecter. </div>"; header('Refresh: 3; login'); exit(); } else { // Si les mots de passe ne sont pas identique $erreur = "<div class=\"alert alert-danger\"> <strong>Erreur!</strong> Les mots de passe ne sont pas identique. </div>"; } } else { // Si l'email est invalide $erreur = "<div class=\"alert alert-danger\"> <strong>Erreur!</strong> Email invalide. </div>"; } } else { // Si l'identifiant est déjà utilisé $erreur = "<div class=\"alert alert-danger\"> <strong>Erreur!</strong> Ce identifiant est déjà utilisé. </div>"; } } } else { // Si tous les champs ne sont pas remplis $erreur = "<div class=\"alert alert-danger\"><strong>Erreur!</strong> Tous les champs ne sont pas remplis. </div>"; } } }[/PHP][/LEFT] [CENTER] Une fois cela de fait, vous [B][COLOR=#b3b300]enregistrez[/COLOR][/B] et on retourne dans [B][COLOR=#0080ff]register.php[/COLOR][/B] qui est à la [B][COLOR=#b300b3]racine[/COLOR][/B]. Vous allez faire comme pour le [B][COLOR=#0059b3]login.php[/COLOR][/B], vous allez placer un [COLOR=#ff0000][B]require_once[/B][/COLOR] allant chercher notre fichier [B][COLOR=#b30000]register.code.php [/COLOR][/B] Ce qui doit vous donner[/CENTER] [LEFT][PHP]<?php session_start(); require_once('includes/configuration.php'); require_once('includes/php/register.code.php'); ?>[/PHP][/LEFT] [CENTER] Maintenant nous allons aussi rajouter le code permettant d'afficher les erreurs.[/CENTER] [LEFT][PHP]<?php if(isset($erreur)) { ?> <?php echo $erreur ?> <?php } ?>[/PHP] [/LEFT] [CENTER]À vous de le placer où vous le souhaitez :) Normalement, si vous avez tout bien suivi, tout devrait marcher :) [SIZE=6][COLOR=#ff0000][B][FA]fa-arrow-down[/FA][/B] [B][FA]fa-arrow-right[/FA]BONUS [FA]fa-arrow-left[/FA][/B] [SIZE=6][B][FA]fa-arrow-up[/FA][/B][/SIZE] [/COLOR][/SIZE] [SIZE=4]Maintenant nous allons utiliser les [B][COLOR=#ff0000]functions[/COLOR][/B]. Donc alors, nous allons nous rendre dans [B][COLOR=#ff0000]notre base de données[/COLOR][/B] et créer une [COLOR=#00b3b3][B]table configuration[/B][/COLOR] comportant [B][COLOR=#666600]les colonnes[/COLOR][/B] : [B][COLOR=#b30059]nom[/COLOR][/B] - [B][COLOR=#b30059]description[/COLOR][/B] - [COLOR=#b30059][B]auteur[/B][/COLOR]. [SPOILER="Type à mettre"][IMG]http://image.prntscr.com/image/78531471550f466ba42e7ab8b44eed30.png[/IMG][/SPOILER] Une fois cela de fait, on se rend dans notre dossier [B][COLOR=#ff0000]includes[/COLOR][/B] puis on crée le dossier [B][COLOR=#ff0000]fonctions [/COLOR][/B]et on crée un fichier nommé [B][COLOR=#0080ff]configuration.fonction.php[/COLOR][/B] Dans ce fichier vous allez mettre[/SIZE] [/CENTER] [LEFT][PHP]<?php function Configuration($str) { static $row; global $bdd; if (!$row) { $stm = $bdd->query("SELECT * FROM configuration"); $row = $stm->fetch(); } return $row[$str]; } ?>[/PHP][/LEFT] [CENTER] [SIZE=4]En gros, on utilisera la fonction [B][COLOR=#ff0000]Configuration[/COLOR][/B] pour afficher les données dans la table [B][COLOR=#0080ff]configuration[/COLOR][/B] Une fois cela de fait, vous allez ajouter un [B][COLOR=#ff0000]require_once[/COLOR][/B] qui inclura notre fichier [COLOR=#0080ff][B]configuration.fonction.php[/B][/COLOR], vous pouvez le mettre dans[B][COLOR=#0080ff] tout nos fichiers de racine[/COLOR][/B], comme ça, pas besoin de faire plusieurs modification, une seul suffira pour tout modifier :D Le fonctionnement est simple, si vous voulez afficher le texte qu'il y a dans votre table [COLOR=#b30059][B]nom[/B][/COLOR], vous allez mettre[/SIZE][/CENTER] [SIZE=4][PHP]<?php echo Configuration('nom'); ?>[/PHP][/SIZE] [CENTER][SIZE=4]Si vous voulez la description, alors à la place de [B][COLOR=#ff8000]nom[/COLOR][/B], vous allez mettre [COLOR=#b30000][B]description[/B][/COLOR], c'est tout simple, et très utilise :) N'hésitez pas à me dire si vous n'avez pas compris certaine chose :) Bonne journée/soirée à vous :D Télécharger le projet: [URL='https://mega.nz/#!0dw2Fa6D!If8Pjdo8lbpu6R2Yeqat89h3yC3NV6raaOBwAyPL07Q']Clique ici[/URL][/SIZE] Nouveau fichier SQL: [URL='https://mega.nz/#!oFwBTAYQ!0glAzW6kgmHZbQMaHWEbyrjFoRkt5sHfJd5SICfniSM']Clique ici[/URL] [SIZE=4][/SIZE][/CENTER] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
#2 Espace membre - Connexion & Inscription
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut