¤LEs BoSs Du HaCk ¤ Forum Index
¤LEs BoSs Du HaCk ¤
Parlez de hack sur pc autant que sur tout autre console.Faites des tutos,video...ainsi que hors sujet comme musique,films,ipod....
 
¤LEs BoSs Du HaCk ¤ Forum IndexFAQSearchRegisterLog in

:: TUTO inscription ::

 
Post new topic   Reply to topic    ¤LEs BoSs Du HaCk ¤ Forum Index -> Sites Webs -> PHP-Mysql
Previous topic :: Next topic  
Author Message
Admin
Administrateur

Offline

Joined: 27 Mar 2011
Posts: 659
Localisation: sur le hack
Masculin

PostPosted: Sat 16 Apr - 09:56 (2011)    Post subject: TUTO inscription Reply with quote

Système d'inscription sécurisé.



  • I-Les variables importante pour réaliser le script.

  • II-Organisation du code.
  • III-Système de condition.  








      




    I-LES VARIABLES IMPORTANTES POUR RÉALISER LE SCRIPT
     


    • htmlentities ==> De manière simple, il sert à convertir toutes les apostrophe et les " de manière à les rendres inutilisables.

    • strlen(trim) ==> Sert à compter le nombre de caractère dans une variable en ne prenant pas en compte les espaces. strlen compte et trim supprime les espaces.

    • preg_match_all ou preg_match('.') ==> Limite les caractères à ceux y étant inscrits dans l'ordre y étant entré.

    • magic_quotes_gpc ==> Mettra des slash ( \ ) devant chaque apostrophe lorsqu'une donné est entré dans la BDD.

    • stripslashes ==> Supprimera les slash mise par les magic quotes.

    • md5 ==> Crypte de manière irréversible un code. Cependant, appliquer deux fois cette fonction sur la même donné donnera le même résultat. Ainsi, lorsque votre membre se loggera, vous n'aurez qu'à activer md5 sur l'entrer pour en vérifier l'exactitude.

    • mysql_real_escape_string ==> Encore une fois, une autre barrière de sécurité qui ajoute des slash à différent type de caractère et protège contre les caractères spéciaux.









    II-ORGANISATION DU CODE
     



    Nous savons maintenant quelles variables seront utilisées lors de l'écriture de ce code. Cependant, il faut bien les ordonnées. Afin que vous puissiez comprendre le mieux possible, nous allons séparer le code en plusieurs parties et, à la fin, tout réunir.


    Maintenant, voyons les variables sur lesquelles nous allons travailler. L'idée de ce tutoriel m'étant venu par les demandes d'aides de Dragon, je vais donc reprendre les mêmes variables que lui, veuillez noter que je prend en compte que vous avez fait un formulaire de qualité et connaissez donc les bases comme les super variables :

    Code:

     Ouverture PHP
    $pseudo = $_POST['pseudo'];    /le pseudo que le membre à entre dans le formulaire
    $code1 = $_POST['code1'];      /le premier mot de passe entre par le membre dans le formulaire
    $code2 = $_POST['code2'];      /la confirmation du mot de passe entre par le membre dans le formulaire
    $adresse = $_POST['adresse'];  /adresse e-mail entre dans le formulaire par le membre
     Fermeture PHP



    [/size]Vos variables de bases sont donc maintenant déclaré. Cependant, avant d'aller plus loin, le membre pourrait déjà effectué des commandes HTML qui seraient plus rapide que le restant de votre code. Ainsi, il faut donc prendre immédiatement le soin de vous protéger.

    [/size]
    Code:

     Ouverture PHP
    if (isset($_POST['pseudo']) AND isset($_POST['code1']) AND isset($_POST['code2']) AND isset($_POST['adresse']))
    {
    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);    /pseudo securise
    $code1 = htmlentities($_POST['code1'], ENT_QUOTES);      /mot de passe securise
    $code2 = htmlentities($_POST['code2'], ENT_QUOTES);      /confirmation mot de passe securise
    $adresse = htmlentities($_POST['adresse'], ENT_QUOTES); /adresse securise
    }
     Fermeture PHP



    Je me suis permis d'ajouter tout de suite la fonction isset, qui sert à déterminer l'existence de variables. Ainsi donc, j'ai vérifié l'existence des variables pseudo, code1, code2 et adresse.









    III-System de condition


    Maintenant que les variables ont bien été déclaré, nous allons écrire de simple condition qui dicteront la conduite des personnes utilisant votre formulaire. Le but étant qu'ils ne possèdent pas plus de possibilités que vous ne voulez leur en donner.

    Nous commencerons donc par le pseudo. Que doit contenir le pseudo d'un membre? Il doit être long, plus que 2 caractère. Il doit être unique. Et c'est tout
    Je vous dit donc Go! Eh oui, avec les informations que je vous ai donné en début de page, vous devriez être capable de faire ces simple demande. Tout ce que je vous demande, c'est de faire ces codes de manière indépendante, c'est-à-dire en plusieurs morceaux.


    Cliquez ici pour voir les codes
    Code:


     if(strlen(trim($_POST['pseudo'])) >= 2)
    {
    on continue...
    }
    else
    {
    echo <font color="#FF0000">
     Votre nom d\'utilisateur est trop court! 
    </font>';
    }




    if($nombrepseudo !=0)
                    {
                    echo '<font color="#FF0000">
    Votre pseudo est déjà utilisé par un membre
    </font>';
                    }
    else
    {
    on continue...
    }





      
    Maintenant, posez-vous exactement les mêmes question pour tous les autres aspects de vos variables. Que doit contenir un code? Que ne doit-il pas contenir? Une adresse e-mail, c'est fait comment? Je vous demande ici un peu d'indépendance car avec les outils que je vous ai déjà donnés, vous devriez être en état de vous débrouiller pour savoir ce que vous devriez faire. Pas nécessairement réussir, mais au moins savoir
    Encore une fois, faîtes le code de manière indépendante.


    Cliquez ici pour voir le code
    Code:



      if(strlen(trim($_POST['code1'])) >= 2)
    {
    on continue...
    }
    else
    {
    echo <font color="#FF0000">
     Votre mot de passe est trop court! 
    </font>';
    }



    if ($_POST['code1'] == $_POST['code2'])
    {
    on continue...
    }
     else
    {
     echo '<font color="#FF0000">
    Votre mot de passe et votre confirmation sont différent
    </font>';
    }


    $nombreadresse = mysql_result(mysql_query("SELECT COUNT(*) FROM game_membre WHERE player_email = '".$_POST['adresse']."'"), 0);
                    if($nombreadresse != 0)
                    {
                        echo '<font color="#FF0000">
    Il y a déjà un compte enregistré sous cette adresse
    </font>';
                    }
                    else
                    {
                        on continue...
                        }




    if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['adresse']))
                                {
                                         on continue...
                                       }
                            else
                            {
                            echo 'La structure de votre adresse email est rejeté';
                            }




     if (get_magic_quotes_gpc()) //Si les magic quotes sont activés.
          {
          //Enlever les antislashes
          $pseudo = stripslashes($pseudo);
          $code1 = stripslashes($code1);
          $code2 = stripslashes($code2);
          $adresse = stripslashes($adresse);
          }






    Vous avez maintenant toutes les conditions nécessaire à la construction d'un système d'inscription de qualité. Votre travail sera donc, cette fois-ci, de toutes les assemblés. La raison pour laquelle je vous les ai fait écrire de manière indépendante est que vous n'oublierez pas ainsi les conséquences d'un refus, chose qui arrive malheureusement très souvent. Aller, au travail!


    Cliquez ici pour voir le code

    Code:


    Ouverture php         
    include 'connexionbdd.php' 
     /connexion à la BDD

    //Condition : Si le pseudo, code1, code2 et adresse existent
    if (isset($_POST['pseudo']) AND isset($_POST['code1']) AND isset($_POST['code2']) AND isset($_POST['adresse']))
    {
        $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
        $code1 = htmlentities($_POST['code1'], ENT_QUOTES);
        $code2 = htmlentities($_POST['code2'], ENT_QUOTES);
        $adresse = htmlentities($_POST['adresse'], ENT_QUOTES);
        
        //Compter les caractere sans incorporer les espaces dans le code et le pseudo. Si ils sont plus grand que 2 et que les deux codes sont identique...
        if((strlen(trim($_POST['code1'])) >= 2) && (strlen(trim($_POST['pseudo'])) >= 2))
        {
            if ($_POST['code1'] == $_POST['code2'])
                {
                $nombrepseudo = mysql_result(mysql_query("SELECT COUNT(*) FROM game_membre WHERE player_pseudo = '".$_POST['pseudo']."'"), 0);
                if($nombrepseudo !=0)
                    {
                    echo '<font color="#FF0000">
    Votre pseudo est déjà utilisé par un membre
    </font>';
                    }
                else
                    {
                    $nombreadresse = mysql_result(mysql_query("SELECT COUNT(*) FROM game_membre WHERE player_email = '".$_POST['adresse']."'"), 0);
                    if($nombreadresse != 0)
                    {
                        echo '<font color="#FF0000">
    Il y a déjà un compte enregistré sous cette adresse
    </font>';
                    }
                    else
                    {
                            if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['adresse']))
                                {
                                            if (get_magic_quotes_gpc()) //Si les magic quotes sont activés.
                                                {
                                                    //Enlever les antislashes
                                                    $pseudo = stripslashes($pseudo);
                                                    $code1 = stripslashes($code1);
                                                    $code2 = stripslashes($code2);
                                                    $adresse = stripslashes($adresse);
                                                }

                                    
                                    $pseudo2 = mysql_real_escape_string($pseudo);
                                    $code3 = mysql_real_escape_string($code1);
                                    $code4 = md5($code3);
                                    $adresse2 =mysql_real_escape_string($adresse);
                                             ===> Requête MySQL <===
                                      }
                              }
                            else
                            {
                            echo 'La structure de votre adresse email est rejeté';
                            }
                    }
                }
            }
            else
            {
                echo '<font color="#FF0000">
    Votre mot de passe et votre confirmation sont différent
    </font>';
            }
        }
        else
        {
            echo '<font color="#FF0000">
     Votre nom d\'utilisateur ou votre mot de passe est trop court! 
    </font>';
        }
    }

    mysql_close() 
     /Fermeture de la BDD
    fermeture php





    Là ou j'ai écrit requête MySQL, je vous laisse l'écrire par vous même. Je dis ceci puisque une requête MySQL change d'une personne et d'une basse de donnée à l'autre. Sur ce, je vous souhaite bon code!


    Back to top
    Publicité






    PostPosted: Sat 16 Apr - 09:56 (2011)    Post subject: Publicité

    PublicitéSupprimer les publicités ?
    Back to top
    Display posts from previous:   
    Post new topic   Reply to topic    ¤LEs BoSs Du HaCk ¤ Forum Index -> Sites Webs -> PHP-Mysql All times are GMT + 2 Hours
    Page 1 of 1

     
    Jump to:  

    Index | Administration Panel | Create forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
    onyx © theme by larme d'ange 2006
    Powered by phpBB © 2001, 2005 phpBB Group