Xteam'Web

Créateur de site internet pour particuliers et professionnels. Des dizaines de personnes à votre disposition ! Des tutoriels tout simple pour vous aidé à la réalisation de votre site. Une livraison rapide et une qualité irréprochable !


    [PHP & MySQL] Créer un formulaire d'inscription

    Partager

    Griffon974
    Admin

    Messages: 86
    Date d'inscription: 26/07/2010
    Age: 17
    Localisation: Alors tu vas tout droit, prochaine à gauche, encore une fois à gauche puis à droite, ah et j'oublié, sa va nul par :P

    [PHP & MySQL] Créer un formulaire d'inscription

    Message par Griffon974 le Mar 27 Juil - 9:09

    Bonjou à tous,

    Dans ce deuxième tutoriel nous inclurons la première partie en HTML de [HTML] Créer un formulaire d'inscription, si vous ne l'avez pas encore lu c'est le moment de vous y mettre car le PHP sera en fonction de ce formulaire. Nous apprendrons à utiliser les conditions. Exemple :
    Code:

    <?php

    if($_POST["pass"] == $_POST["pass2"]){

    // On met les instructions à faire.

    }

    else{

    // On met les instructions à faire.

    }

    ?>


    Ce code signifie tout simplement que si le champ de formulaire "pass" et "pass2" ont la même valeur, alors on continue le code, sinon on l'affiche un message d'erreur.

    Voilà, pas trop compliqué ? OK, on peut continuer Smile.

    I - La base de données

    Dans ce chapitre nous aurons besoin d'inscrire toute les données du formulaire dans une base de données pour que les utilisateurs reste en memoire, sans cela ils devront s'inscrire à chaque fois qu'ils visiteront le site, ce qui est... légèrement gênant... Commençons, faites exactement ce qu'est écrit à l'image :

    Nous allons tout d'abord créer la base de données, on va l'appellé "Database".



    Nous allons ensuite insérer une table qui va s'appeler "users" et elle contiendra 3 champs : id, login, pass.



    Remplissez exactement comme moi grâce à l'image ci-dessous



    Voilà, après avoir cliqué sur "sauvegarder" vous devez avoir ceci :



    Voilà, nous avons terminer notre base de données on peut des maintenant commencé à coder.

    Voici le code à insérer entre les balise <?php ?>


    Code:

    <?php

    session_start();

    $BDD = mysql_connect("localhost","root","");
    mysql_select_db("database");

    ?>

    <?php

    // On met les variables utilisé dans le code PHP à FALSE (C'est-à-dire les désactiver pour le moment).
    $error = FALSE;
    $registerOK = FALSE;

        // On regarde si l'utilisateur est bien passé par le module d'inscription
        if(isset($_POST["register"])){
           
            // On regarde si tout les champs sont remplis, sinon, on affiche un message à l'utilisateur.
            if($_POST["login"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL){
               
                // On met la variable $error à TRUE pour que par la suite le navigateur sache qu'il y'a une erreur à afficher.
                $error = TRUE;
               
                // On écrit le message à afficher :
                $errorMSG = "Tout les champs doivent être remplis !";
                   
            }
           
            // Sinon, si les deux mots de passes correspondent :
            elseif($_POST["pass"] == $_POST["pass2"]){
               
                // On regarde si le mot de passe et le nom de compte n'est pas le même
                if($_POST["login"] != $_POST["pass"]){
                   
                    // Si c'est bon on regarde dans la base de donnée si le nom de compte est déjà utilisé :
                    $sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
                    $sql = mysql_query($sql);
                // On compte combien de valeur à pour nom de compte celui tapé par l'utilisateur.
                $sql = mysql_num_rows($sql);
               
                  // Si $sql est égal à 0 (c'est-à-dire qu'il n'y a pas de nom de compte avec la valeur tapé par l'utilisateur
                  if($sql == 0){
                 
                      // Si tout va bien on regarde si le mot de passe n'exède pas 60 caractères.
                      if(strlen($_POST["pass"] < 60)){
                     
                        // Si tout va bien on regarde si le nom de compte n'exède pas 60 caractères.
                        if(strlen($_POST["login"] < 60)){
                       
                            // Si le nom de compte et le mot de passe sont différent :
                            if($_POST["login"] != $_POST["pass"]){
                       
                              // Si tout ce passe correctement, on peut maintenant l'inscrire dans la base de données :
                              $sql = "INSERT INTO users (login,pass) VALUES ('".$_POST["login"]."','".$_POST["pass"]."')";
                              $sql = mysql_query($sql);
                             
                              // Si la requête s'est bien effectué :
                              if($sql){
                             
                                  // On met la variable $registerOK à TRUE pour que l'inscription soit finalisé
                                  $registerOK = TRUE;
                                  // On l'affiche un message pour le dire que l'inscription c'est bien déroulé :
                                  $registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site.";
                                 
                                  // On le met des variables de session pour stocker le nom de compte et le mot de passe :
                                  $_SESSION["login"] = $_POST["login"];
                                  $_SESSION["pass"] = $_POST["pass"];
                                 
                                  // Comme un utilisateur est différent, on crée des variables de sessions pour "varier" l'utilisateur comme ceci :
                                  // echo $_SESSION["login"]; (bien entendu avec les balises PHP, sinons cela ne marchera pas.
                             
                              }
                             
                              // Sinon on l'affiche un message d'erreur (généralement pour vous quand vous testez vos scripts PHP)
                              else{
                             
                                  $error = TRUE;
                                 
                                  $errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";
                             
                              }
                           
                            }
                           
                            // Sinon on fais savoir à l'utilisateur qu'il a mis un nom de compte trop long.
                            else{
                           
                              $error = TRUE;
                             
                              $errorMSG = "Votre nom compte ne doit pas dépasser <strong>60 caractères</strong> !";
                             
                              $login = NULL;
                             
                              $pass = $_POST["pass"];
                           
                            }
                       
                        }
                     
                      }
                     
                      // Si le mot de passe dépasse 60 caractères on le fait savoir
                      else{
                     
                        $error = TRUE;
                       
                        $errorMSG = "Votre mot de passe ne doit pas dépasser <strong>60 caractères</strong> !";
                       
                        $login = $_POST["login"];
                       
                        $pass = NULL;
                     
                      }
                 
                  }
                 
                  // Sinon on affiche un message d'erreur lui disant que ce nom de compte est déjà utilisé.
                  else{
                 
                      $error = TRUE;
                     
                      $errorMSG = "Le nom de compte <strong>".$_POST["login"]."</strong> est déjà utilisé !";
                     
                      $login = NULL;
                     
                      $pass = $_POST["pass"];
                 
                  }
                }
               
                // Sinon on fais savoir à l'utilisateur qu'il doit changer le mot de passe ou le nom de compte
                else{
                   
                    $error = TRUE;
                   
                    $errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";
                   
                }
               
            }
         
          // Sinon si les deux mots de passes sont différents :     
          elseif($_POST["pass"] != $_POST["pass2"]){
         
            $error = TRUE;
           
            $errorMSG = "Les deux mots de passes sont différents !";
           
            $login = $_POST["login"];
           
            $pass = NULL;
         
          }
         
          // Sinon si le nom de compte et le mot de passe ont la même valeur :
          elseif($_POST["login"] == $_POST["pass"]){
         
            $error = TRUE;
           
            $errorMSG = "Le nom de compte et le mot de passe doivent être différents !";
         
          }
           
        }

    ?>

    <?php

      mysql_close($BDD);

    ?>

    <?php // On affiche les erreurs :
      if($error == TRUE){ echo "<p align="center" style="color:red;">".$errorMSG."</p>"; }
    ?>
    <?php // Si l'inscription s'est bien déroulée on affiche le succès :
      if($registerOK == TRUE){ echo "<p align="center" style="color:green;"><strong>".$registerMSG."</strong></p>"; }
    ?>


    Voilà ! Un récapitulatif de ce que vous devriez avoir :

    Code:

    <?php

    session_start();

    $BDD = mysql_connect("localhost","root","");
    mysql_select_db("database");

    ?>

    <?php

    // On met les variables utilisé dans le code PHP à FALSE (C'est-à-dire les désactiver pour le moment).
    $error = FALSE;
    $registerOK = FALSE;

        // On regarde si l'utilisateur est bien passé par le module d'inscription
        if(isset($_POST["register"])){
           
            // On regarde si tout les champs sont remplis, sinon, on affiche un message à l'utilisateur.
            if($_POST["login"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL){
               
                // On met la variable $error à TRUE pour que par la suite le navigateur sache qu'il y'a une erreur à afficher.
                $error = TRUE;
               
                // On écrit le message à afficher :
                $errorMSG = "Tout les champs doivent être remplis !";
                   
            }
           
            // Sinon, si les deux mots de passes correspondent :
            elseif($_POST["pass"] == $_POST["pass2"]){
               
                // On regarde si le mot de passe et le nom de compte n'est pas le même
                if($_POST["login"] != $_POST["pass"]){
                   
                    // Si c'est bon on regarde dans la base de donnée si le nom de compte est déjà utilisé :
                    $sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
                    $sql = mysql_query($sql);
                // On compte combien de valeur à pour nom de compte celui tapé par l'utilisateur.
                $sql = mysql_num_rows($sql);
               
                  // Si $sql est égal à 0 (c'est-à-dire qu'il n'y a pas de nom de compte avec la valeur tapé par l'utilisateur
                  if($sql == 0){
                 
                      // Si tout va bien on regarde si le mot de passe n'exède pas 60 caractères.
                      if(strlen($_POST["pass"] < 60)){
                     
                        // Si tout va bien on regarde si le nom de compte n'exède pas 60 caractères.
                        if(strlen($_POST["login"] < 60)){
                       
                            // Si le nom de compte et le mot de passe sont différent :
                            if($_POST["login"] != $_POST["pass"]){
                       
                              // Si tout ce passe correctement, on peut maintenant l'inscrire dans la base de données :
                              $sql = "INSERT INTO users (login,pass) VALUES ('".$_POST["login"]."','".$_POST["pass"]."')";
                              $sql = mysql_query($sql);
                             
                              // Si la requête s'est bien effectué :
                              if($sql){
                             
                                  // On met la variable $registerOK à TRUE pour que l'inscription soit finalisé
                                  $registerOK = TRUE;
                                  // On l'affiche un message pour le dire que l'inscription c'est bien déroulé :
                                  $registerMSG = "Inscription réussie ! Vous êtes maintenant membre du site.";
                                 
                                  // On le met des variables de session pour stocker le nom de compte et le mot de passe :
                                  $_SESSION["login"] = $_POST["login"];
                                  $_SESSION["pass"] = $_POST["pass"];
                                 
                                  // Comme un utilisateur est différent, on crée des variables de sessions pour "varier" l'utilisateur comme ceci :
                                  // echo $_SESSION["login"]; (bien entendu avec les balises PHP, sinons cela ne marchera pas.
                             
                              }
                             
                              // Sinon on l'affiche un message d'erreur (généralement pour vous quand vous testez vos scripts PHP)
                              else{
                             
                                  $error = TRUE;
                                 
                                  $errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";
                             
                              }
                           
                            }
                           
                            // Sinon on fais savoir à l'utilisateur qu'il a mis un nom de compte trop long.
                            else{
                           
                              $error = TRUE;
                             
                              $errorMSG = "Votre nom compte ne doit pas dépasser <strong>60 caractères</strong> !";
                             
                              $login = NULL;
                             
                              $pass = $_POST["pass"];
                           
                            }
                       
                        }
                     
                      }
                     
                      // Si le mot de passe dépasse 60 caractères on le fait savoir
                      else{
                     
                        $error = TRUE;
                       
                        $errorMSG = "Votre mot de passe ne doit pas dépasser <strong>60 caractères</strong> !";
                       
                        $login = $_POST["login"];
                       
                        $pass = NULL;
                     
                      }
                 
                  }
                 
                  // Sinon on affiche un message d'erreur lui disant que ce nom de compte est déjà utilisé.
                  else{
                 
                      $error = TRUE;
                     
                      $errorMSG = "Le nom de compte <strong>".$_POST["login"]."</strong> est déjà utilisé !";
                     
                      $login = NULL;
                     
                      $pass = $_POST["pass"];
                 
                  }
                }
               
                // Sinon on fais savoir à l'utilisateur qu'il doit changer le mot de passe ou le nom de compte
                else{
                   
                    $error = TRUE;
                   
                    $errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";
                   
                }
               
            }
         
          // Sinon si les deux mots de passes sont différents :     
          elseif($_POST["pass"] != $_POST["pass2"]){
         
            $error = TRUE;
           
            $errorMSG = "Les deux mots de passes sont différents !";
           
            $login = $_POST["login"];
           
            $pass = NULL;
         
          }
         
          // Sinon si le nom de compte et le mot de passe ont la même valeur :
          elseif($_POST["login"] == $_POST["pass"]){
         
            $error = TRUE;
           
            $errorMSG = "Le nom de compte et le mot de passe doivent être différents !";
         
          }
           
        }

    ?>

    <?php

      mysql_close($BDD);

    ?>

    <?php // On affiche les erreurs :
      if($error == TRUE){ echo "<p align="center" style="color:red;">".$errorMSG."</p>"; }
    ?>
    <?php // Si l'inscription s'est bien déroulée on affiche le succès :
      if($registerOK == TRUE){ echo "<p align="center" style="color:green;"><strong>".$registerMSG."</strong></p>"; }
    ?>

    <html>

        <head>
       
            <title>Création d'un formulaire d'inscription en HTML</title>
       
        </head>
       
        <body>
       
            <form action="index.php" method="post">
           
                <table>
               
                <tr>
               
                <td><label for="login"><strong>Nom de compte :</strong></label></td>
                <td><input type="text" name="login" id="login"/></td>
               
                </tr>
               
                <tr>
               
                <td><label for="pass"><strong>Mot de passe :</strong></label></td>
                <td><input type="password" name="pass" id="pass"/></td>
               
                </tr>
               
                <tr>
               
                <td><label for="pass2"><strong>Confirmez le mot de passe :</strong></label></td>
                <td><input type="password" name="pass2" id="pass2"/></td>
               
                </table>
           
            <input type="submit" name="register" value="S'inscrire"/>
           
            </form>
       
        </body>

    </html>

    Voilà pour ceux qui veuillent faire des améliorations sur mon script je vous conseille d'apprendre les quelques bases du Site Du Zero

    Merci encore d'avoir suivit ce tutoriel. Cordialement, Griffon974.

    Quentin01

    Messages: 2
    Date d'inscription: 28/07/2010
    Age: 16
    Localisation: Entre le pole sud et le pole nord

    Re: [PHP & MySQL] Créer un formulaire d'inscription

    Message par Quentin01 le Mar 3 Aoû - 22:16

    Bien expliqué ton cours Griffon =)
    Mais par contre je te déconseille de leur faire utiliser les fonctions Mysql qui ne seront plus dans PHP 6 et qui sont dépassé depuis longtemps.

    Griffon974
    Admin

    Messages: 86
    Date d'inscription: 26/07/2010
    Age: 17
    Localisation: Alors tu vas tout droit, prochaine à gauche, encore une fois à gauche puis à droite, ah et j'oublié, sa va nul par :P

    Re: [PHP & MySQL] Créer un formulaire d'inscription

    Message par Griffon974 le Mer 4 Aoû - 9:35

    Je modifierais sa plus tard ^^ c'est déjà de bonnes bases. Je mettrais la PDO plus tard, la POO est légèrement plus compliqué pour eux :p

    CantresDaidesBillard

    Messages: 1
    Date d'inscription: 05/08/2011

    salue sa va

    Message par CantresDaidesBillard le Ven 5 Aoû - 20:30

    euu jai un ti probleme moi jaimerais sa créer un formulaire d'inscription
    mais de le mètre sure un site comme zikle ses un hebergement gratuit web !!! en php et html comment je peut faire pour le mètre la dessus ???????

      La date/heure actuelle est Mer 16 Mai - 18:03