Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon code ne fonctionne pas...

Sujet résolu
    18 novembre 2017 à 16:11:14

    Bonjour, 

    Vous voyez des erreurs ? 

    if (!empty($utilisateur && $passwd)) {
    	   
    	   require_once('../config/bdd/config.php');
    	   $req = $bdd->prepare('SELECT * FROM admins WHERE nom=:nom AND pass=:pass');
    	   $req->execute(array('nom' => $utilisateur, 
    						   'pass' => $passwd));
    	   $data = $req->fetch();
    	   
    	   if ($datas['pass'] == $passwd) {
    		   echo 'valide';
    	   }else{
    		   echo 'pas valide';
    	   }
    	   
    	   
    	   
    	   
       }else{
    	   header('Location: index.php?error=2');
       }

    Thank's ! 

    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2017 à 16:12:18

      $datas vs $data

      Et puis le test if ($datas['pass'] == $passwd) { est inutile :

      1. il faut surtout tester avant tout que $data ne vaut pas FALSE
      2. pas la peine de tester en PHP ce que tu testes déjà en SQL : vu que que tu as AND pass=:pass dans la requête, inutile de refaire if ($data['pass'] == $passwd) { (encore que l'interclassement peu jouer mais qui stocke des mots de passe en clair ?!?)

      Enfin, bon, ça [$datas vs $data], ça devrait apparaître par une notice ...

      > if (!empty($utilisateur && $passwd)) {

      Encore faudrait-il savoir d'où sortent ces variables mais !empty d'une condition ? Au mieux, tu obtiens ce que tu veux de manière inutilement détournée : $utilisateur et $passwd toutes deux à valeurs non fausses ?

      PS : j'oubliais, c'est toujours pareil : c'est bien beau de dire qu'un code ne fonctionne pas, mais il faudrait peut être commencer par préciser en quoi sinon on ne sait même pas ce qu'on doit chercher ...

      -
      Edité par julp 18 novembre 2017 à 16:19:11

      • Partager sur Facebook
      • Partager sur Twitter
        18 novembre 2017 à 16:20:11

        Et comment je peux faire en sorte de vérifier que $data est pas false ?
        • Partager sur Facebook
        • Partager sur Twitter
          18 novembre 2017 à 16:25:40

          Sérieux ? if ($data) :roll:

          if ($data) {
              // ok - peupler la session ?
          } else {
              // identifiants erronés
          }
          

          -
          Edité par julp 18 novembre 2017 à 16:26:35

          • Partager sur Facebook
          • Partager sur Twitter
            18 novembre 2017 à 16:28:11

            C'est bizzare, j'ai pourtant mes entrées dans ma base de donnée et je tombe sur identifiant erronés :/
            • Partager sur Facebook
            • Partager sur Twitter
              18 novembre 2017 à 16:29:31

              Vérifies tes variables ? ($utilisateur + $passwd)

              Testes ta requête dans pma ? (les erreurs PDO/SQL sont activées au moins ?)

              ...

              -
              Edité par julp 18 novembre 2017 à 16:29:51

              • Partager sur Facebook
              • Partager sur Twitter
                18 novembre 2017 à 16:31:56

                Ma variable $utilisateur

                $utilisateur = htmlspecialchars($_POST['utilisateur']);
                
                Et dans le formulaire
                
                <input id="icon_prefix" type="text" class="validate" name="utilisateur" required>

                Ma variable $passwd

                $passwd = htmlspecialchars($_POST['passwd']);
                
                Et dans le formulaire
                
                <input id="icon_prefix" type="password" name="passwd" class="validate" required>

                Et oui, pourtant elles le sont. 

                C'est bizzare :/


                • Partager sur Facebook
                • Partager sur Twitter
                  18 novembre 2017 à 16:35:33

                  Beurk, pas de htmlspecialchars là-dessus ! En plus si à l'insertion il n'y en avait pas et que le login et/ou le le mdp contient un des caractères échappés, ça ne matchera JAMAIS.

                  Mets des var_dump sur toutes tes variables et vérifies leur contenu.

                  De toute façon, tu ne fais que donner des brides de code, on n'en a pas une vue d'ensemble (le form est-il en method="POST", etc).

                  -
                  Edité par julp 18 novembre 2017 à 16:36:40

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 novembre 2017 à 16:38:07

                    J'ai bien tous ce que je veux.

                    string(11) "utilisateur"

                    string(6) "passwd"

                    Code PHP : 

                    <?php
                    var_dump($_POST['utilisateur']);
                    var_dump($_POST['passwd']);
                    if($_SERVER['REQUEST_METHOD'] == 'POST')
                    	
                    {
                       $utilisateur = $_POST['utilisateur'];
                       $passwd = $_POST['passwd'];
                    
                       if (!empty($utilisateur || $passwd)) {
                    	   
                    	   include('../config.php');
                    	   $req = $bdd->prepare('SELECT * FROM admins WHERE nom=:nom AND pass=:pass');
                    	   $req->execute(array('nom' => $utilisateur, 
                    						   'pass' => $passwd));
                    	   $data = $req->fetch();
                    	   
                    	   if ($data) {
                    		   
                    		   echo 'test';
                    		   
                    	   }else{
                    		   
                    		   echo 'test2';
                    		   
                    	   }
                    	   
                    	   
                    	   
                    	   
                    	   
                    	   
                       }else{
                    	   header('Location: index.php?error=2');
                       }
                    	
                    }else{
                    	
                    	header('Location: index.php?error=1');
                    }
                    ?>

                    Code HTML :

                    <!doctype html>
                    <html>
                    <head>
                    <meta charset="utf-8">
                    <title>AddonStream - Administration</title>
                    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
                    <link type="text/css" rel="stylesheet" href="../assets/materialize/css/materialize.min.css"  media="screen,projection"/>
                    <link type="text/css" rel="stylesheet" href="../assets/materialize/css/perso.css"/>
                    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js"></script>
                    <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.5/sweetalert2.css">
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.5/sweetalert2.js"></script>
                    </head>
                    
                    <body>
                    <center>
                    <div class="container" style="margin-top: 10%">
                    <div class="card-panel hoverable" style="width: 50%; text-align: center;"> Logo
                    <?php
                    if ($_GET['error'] == 1) {
                    	
                    	echo '<br><br>
                    	<div id="card-alert" class="card red">
                                        <div class="card-content white-text">
                                          <p>Une erreur est survenue.</p>
                                        </div>
                                      </div>
                    ';
                    
                    	
                    }else{
                    	
                    }
                    if ($_GET['error'] == 2) {
                    	
                    	echo '<br><br>
                    	<div id="card-alert" class="card red">
                                        <div class="card-content white-text">
                                          <p>Vous devez remplir tous les champs.</p>
                                        </div>
                                      </div>
                    ';
                    	
                    }else{
                    };
                    ?>
                    <br><br>
                    
                    <form method="POST" action="traitement_admin.php">
                    <div class="input-field col s6">
                              <i class="material-icons prefix">account_circle</i>
                              <input id="" type="text" class="validate" name="utilisateur" required>
                              <label for="icon_prefix">Nom</label>
                            </div>
                            
                            
                            <div class="input-field col s6">
                              <i class="material-icons prefix">lock_outline</i>
                              <input id="" type="password" name="passwd" class="validate" required>
                              <label for="icon_prefix">Mot de passe</label>
                            </div>
                            <br>
                    <button class="btn waves-effect waves-light " type="submit" name="action">Accéder à l'administration
                      <i class="material-icons right">vpn_key</i>
                    </button>
                    
                    </form>
                    </div>
                    </center>
                    
                    
                    
                    <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
                    <script type="text/javascript" src="../assets/materialize/js/materialize.min.js"></script>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
                    </body>
                    </html>
                    




                    -
                    Edité par CharlesSauvat 18 novembre 2017 à 16:38:59

                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 novembre 2017 à 18:42:41

                      > if (!empty($utilisateur || $passwd)) {

                      Pas vraiment correct. if (!empty($_POST['utilisateur']) &amp;&amp; !empty($_POST['passwd'])) {

                      Bref, ça vient vraisemblablement de ta requête (erronée mais tu dis avoir activé les erreurs, ça ne matche pas/c'est tronqué à l'insertion, etc).

                      PS : le HTML n'est pas valide, /div devrait être après /form et pas de ; après la } d'un bloc else, quoique un else avec un bloc vide c'est inutile et qu'ici ton deuxième if aurait pu être un else if.

                      -
                      Edité par julp 18 novembre 2017 à 18:49:02

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Mon code ne fonctionne pas...

                      × 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