Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme php my admin

    16 août 2018 à 21:17:57

    bonjour

    j'ai un probleme avec php my admin enfaite il recupere les  information meme si les mot de passe ne sons pas identique 

    ou que mon pseudo depasse 20 caractere

    comment y remedier ?

    merci d'avance cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2018 à 21:21:39

      Salut boubou

      Il faudrait la partie de ton code concerné ! 

      Merci
      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 21:33:43

         bonjour

        voila mon code en entier 

        //Au début du script PHP
        //activation de l'affichage des erreurs PHP
         error_reporting(E_ALL);
         ini_set('display_errors', TRUE);
         ini_set('display_startup_errors', TRUE);
        
        //connexion à la bdd
         $con = new mysqli('localhost', 'root', '', 'conexion' ) ;
         if ($con->connect_error) {
           die("Echec de connexion avec mysqli: " . $con->connect_error);
         }
        
        //récupération PROPRE des variables AVANT de les utiliser
        if(isset($_POST['valider']))
        {
         $pseudo=$_POST['pseudo'];
         $pass=$_POST['pass'];
         $mdp2=$_POST['mdp2'];
        //traitement du submit
         if($pseudo && $pass){
           $sql = "INSERT INTO `information` (pseudo,  pass) VALUES (?, ?)";
           if( $tmpr = $con->prepare($sql) ){
             if(!$tmpr->bind_param("ss",$pseudo,$pass)){
                echo "Binding parameters failed: (" . $tmpr->errno . ") " . $tmpr->error;
                exit();
             }
             if(!$tmpr->execute()){
               echo "Execute failed: (" . $tmpr->errno . ") " . $tmpr->error;
               exit();
             }
           }else{
             echo "Erreur dans la requête ".$sql;
             echo "Prepare failed: (" . $con->errno . ") " . $con->error;
        	 
             exit();
           
           }
        }
        
        if($pass!=$mdp2)
        {
        	echo"vos mdp ne corresponde pas";
        }
        else
        {
        	header('location:connect1.php');
        }
        }
        
        
        ?>
        <form method="post" action=""/>
        <input type="text" name="pseudo" placeholder="votre pseudo" />
        <br/>
        <input type="password" name="pass" placeholder="votre mdp" />
        <br />
        <input type="password" name="mdp2" placeholder="confirmation mdp" />
        <br/>
        <input type="submit" name="valider" value="valider" />
        </form>
        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2018 à 21:36:40

          Salut,

          Ça n’est pas un problème avec Phpmyadmin mais avec ton code.

          En faite tu exécutes ta requête avant même de vérifier si les deux mots de passe sont identiques, dans ce cas là ça ne redirigera pas l’utilisateur vers une autre page mais l’insertion en BDD se fera bien.

          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2018 à 21:38:04

            Je dit peut être une bêtise mais je vois aucun if qui dit que le pass == mdp2 !
            • Partager sur Facebook
            • Partager sur Twitter
              16 août 2018 à 22:19:48

              bonjour 

              du coup je doit faire quoi dans ces cas la

              j'ai essayer d'écrire en haut de ma connexion a la base de donner

              toujours pareille 

              comment faire

              merci cordialement

              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2018 à 22:28:29

                Concrètement, à la ligne 20, tu vérifies...je ne sais pas quoi, je pense qu'il manque un isset() ou un !empty() mais là ça n'a aucun sens.

                Bref, avant de faire ton insertion en BDD (ligne 21), tu vérifies que les deux mots de passe correspondent, tout simplement, car là tu ne vérifies rien

                • Partager sur Facebook
                • Partager sur Twitter
                  16 août 2018 à 22:30:41

                  il me semble que c'est sa :
                  $_POST["pass"] != $_POST["pass2"]
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 août 2018 à 22:36:46

                    Non BenoitGIBIARD, il fait bien la vérification des mots de passe à la ligne 40

                    if($pass!=$mdp2)
                    {
                        echo"vos mdp ne corresponde pas";
                    }
                    else
                    {
                        header('location:connect1.php');
                    }

                    Le problème c'est que placé ici ça ne sert à rien, il n'empêche pas sa requête de s'exécuter si les deux MDP sont différents, c'est ce que je lui expliquais

                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 août 2018 à 20:37:26

                      bonjour 

                      ou je doit place ma requête car j'ai essayer

                      de la déplacer et la mettre au début de mon code, toujours pareille 

                      avez vous la solution SVP je suis bloqué

                      sa rend fou lol

                      merci cordialement

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 août 2018 à 21:39:19

                        Tu vérifies que les variables ne sont pas vides, dans ce cas là tu fais une condition, et dans cette condition  tu fais ta vérification des MDP, en gros tu imbriques ta condition dans une autre.

                        Tu as des tas de code sur internet comme le tien, et enormement sur ce forum, il faut juste que tu comprennes la logique qu’il y a derrière.

                        Pour te résumer ça, d’abord tu vérifies que le mot de passe et le pseudo ne sont pas vides, une fois cette vérification faite, tu rentres dans une condition, dans cette condition tu verifies que les deux MDP correspondent, et si c’est bon, dans cette condition tu fais ta requête d’insertion dans la BDD.

                        J’espere que c’est clair pour toi, je veux bien te donner un exemple de code que tu pourrais adapter mais sur telephone j’ai pas accès aux balises de code.

                        Mais ça donnerait ça:

                        if (!empty($pass) && !empty($pseudo)){

                             if ($pass == $pass2){

                                  $sql = « INSERT INTO table etc... »

                                  ....

                             }

                            else{ 

                            .... }

                        }

                        PS : aux lignes 16 à 18, utilise htmlspecialchars pour éviter aux petits malins de faire n’importe quoi ;)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 août 2018 à 21:43:52

                          Salut !

                          QuentinSchifferle a écrit:

                          PS : aux lignes 16 à 18, utilise htmlspecialchars pour éviter aux petits malins de faire n’importe quoi ;)

                          Attends, je selle mon cheval et je mets mon armure, je (re-)pars à la bataille.

                          PAS DE htmlspecialchars() NI htmlentities() SUR DES DONNÉES QU'ON ENVOIE EN BASE

                          Ces deux fonctions ne sont absolument pas prévues pour sécuriser des données dans ce contexte. Plus d'informations ici et .
                          Donc laissez les lignes 16 à 18 comme elles sont.

                          -
                          Edité par Ymox 17 août 2018 à 21:51:41

                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 août 2018 à 23:09:21

                            Salut,

                            eh bah comme quoi, on en apprends tous les jours. Donc si je résume grossièrement, on laisse l’utilisateur rentrer ce qu’il veut dans les champs du formulaire, et ensuite on securise tout ça avec htmlspecialchars() ou htmlentities() parce qu’on n’a aucune confiance en lui. 

                            Bon bah j’ai quelques scripts à revoir moi ^^ Merci pour cette petite leçon très importante Ymox ;)

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 août 2018 à 9:16:13

                              Tu peux tout à fait filtrer la saisie, mais htmlspecialchars() ne filtre rien, ça neutralise en partie, et POUR DU HTML.

                              Juste pour savoir QuentinSchifferle, tu appelais htmlspecialchars() avant envoi en BDD pour quelle raison ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 août 2018 à 11:38:44

                                J’etais juste bête et discipliné donc comme je l’ai vu je ne sais combien de fois dans des forums et même sur certains tutoriels vidéos, je n’ai pas cherché plus loin.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 août 2018 à 16:33:20

                                  Tu devrais dans un premier temps vérifier que tes champs pseudo et pass sont bien renseigner, si c'est le cas tu vérifie ensuite que pass et mdp2 sont identique.

                                  Si c'est bien le cas tu fais ton insertion en BDD et tu redirige vers la page souhaité comme tu l'as si joliement fait ;)

                                  En gros quelque chose dans ce gout là :

                                  if(isset($pseudo) && isset($pass)) {
                                      if($pass!=$mdp2)
                                      {
                                          echo"vos mdp ne corresponde pas";
                                      }
                                      else
                                      { 
                                          $sql = INSERT INTO ....
                                          header('location:connect1.php');
                                      }
                                  }



                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    20 août 2018 à 16:40:05

                                    Bref, c'est le même genre de souci que dans ce sujet.

                                    -
                                    Edité par Ymox 20 août 2018 à 16:40:23

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 août 2018 à 22:52:23

                                      bonjour

                                      j'ai essayer comme sa sa ne marche pas 

                                      if($query->rowCount()<1)
                                      	{
                                      		
                                      		if($pass!=$mdp2)
                                      {
                                      	echo"vos mdp ne corresponde pas";
                                      }
                                      else 
                                      {
                                              header('location:connect1.php');
                                          }
                                          if (isset($_POST['valider'])) 
                                      	{
                                      $pseudo = $_POST["pseudo"] ;
                                      $pass = $_POST["pass"] ;
                                      
                                      
                                      $con = new mysqli('localhost', 'root', 'root', 'conexion' ) ;
                                      if ($con->connect_error) {
                                          die("Echec de connexion avec mysqli: " . $con->connect_error);
                                      }
                                      $tmpr = $con->prepare("INSERT INTO `information` (pseudo,  pass) VALUES (?, ?)");
                                      $tmpr->bind_param("ss", $pseudo, $pass);
                                      $tmpr->execute();
                                      
                                      	}
                                           else
                                          {
                                              echo"pseudo indisponible";
                                          }
                                       
                                      
                                      	
                                      }
                                      
                                      
                                      
                                      }

                                      j'ai rentre ma connexion a la base de donné dans ma condition  pass et différant de.

                                      merci cordialement

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        22 août 2018 à 11:39:35

                                        Euh .. C'est le bordel là, non ?
                                        C'est pas ton premier sujet pour le même probleme .. Il va falloir sérieusement revoir les cours là, tout est en bordel et ma foutu ..

                                        Tu teste $pass et $mdp2 à la ligne 4, alors que tu ne les créer qu'à la ligne 14 et 15 .
                                        Et puis niveau if else .. Voilà quoi à refaire à zero ..
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 août 2018 à 20:55:46

                                          bonjour

                                          j'ai refait tous mon code tous marche sauf l'insertion dans la base de donné

                                          voici mon code :

                                          if(isset($_POST['valider']))
                                          {
                                          	$pseudo=$_POST['pseudo'];
                                          	$pass=$_POST['pass'];
                                           $mdp2=$_POST['mdp2'];
                                          $bdd = new PDO("mysql:host=localhost;dbname=conexion", 'root', 'root');
                                            
                                            
                                             $query=$bdd->prepare('SELECT * FROM information WHERE pseudo=:pseudo');
                                             $query->execute(array(':pseudo'=>$pseudo));
                                              if($query->rowCount()<1)
                                          	{
                                          		
                                          
                                          		if($pass!=$mdp2)
                                          {
                                          	echo"vos mdp ne corresponde pas";
                                          }
                                          else 
                                          {
                                                  header('location:connect1.php');
                                              }
                                           
                                           
                                           $sql = "INSERT INTO `information` (pseudo,  pass) VALUES (?, ?)";
                                          	}
                                               else
                                              {
                                                  echo"pseudo indisponible";
                                              }
                                           
                                          
                                          	
                                          }

                                          ps j'ai repris les cours depuis le debut

                                          merci cordialement

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 août 2018 à 21:40:02

                                            Bonsoir,

                                            Tests avec 2 mdp différents et ça fonctionnera... 

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              6 septembre 2018 à 9:17:35

                                              $sql = "INSERT INTO `information` (pseudo,  pass) VALUES (?, ?)";

                                              Il faut que tu le mette dans :

                                              else
                                              {

                                                  $sql = "INSERT INTO `information` (pseudo,  pass) VALUES (?, ?)"; //--> ICI par exemple ...

                                              header('location:connect1.php');

                                              }
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              probleme php my admin

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                              • Editeur
                                              • Markdown