Problème d'authentification à une base de données

Fermé
Zhelos - Modifié par Zhelos le 21/01/2014 à 15:59
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 22 janv. 2014 à 12:32
Bonjour,

Voilà je cherches à créer une page d'authentification simple permettant de rentrer dans "administration.php" si les identifiants rentrés sont corrects ou bien de retourner un message d'erreur si ce n'est pas le cas ou que l'un des champs est vide.

Or, il s'avère que j'ai créer une page qui ne me donne aucune erreur, seulement quand je rentre un identifiant correct, il me sort quand même que les identifiants sont incorrects au lieu de m'amener sur la page recherchée (administration.php).

J'espérais donc trouver de l'aide ici. Je poste donc mon code !

<?php
     $identifiant = $_GET["login"];
     $pass = $_GET["pass"];
     $verif = true;
     if($identifiant == '')
      {
      echo 'Veuillez remplir le champ de l\'identifiant !<br />';
      $verif = false;
      }
     if($pass == '')
      {
      echo 'Veuillez remplir le champ du mot de passe !<br />';
      $verif = false;
      }
     if ($verif == false)
      {
      echo '<br /><a href="adm.php">Retour a la page d\'identification.</a>';
      }
     else
     {
     session_start();
     include'connexion_mysql.php';
     if($connexion)
      {
      $req = "select count(*) from utilisateur where login ='".$_GET['login']."' and mdp = md5('".$_GET['pass']."')";
      $res = mysqli_query($connexion, $req);
      $tab = mysqli_num_rows($res);
      if($tab[0])
       {
       $_SESSION['id'] = $tab[0];
       header('Location: administration.php');
       }
      else
       {
       echo 'Au moins un des deux champs est incorrect, veuillez réessayer. <br /><br /> <a href="adm.php">Retour a la page d\'identification.</a>';
       }
      mysqli_close($connexion);
      }
     }
    ?>




Merci d'avance pour l'aide apportée !

2 réponses

chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
21 janv. 2014 à 16:32
Salut,

Selon la doc PHP : https://www.php.net/manual/fr/mysqli-result.num-rows.php

mysqli_num_rows() renvoit un entier et non un tableau.

Je t'ai mis sur la piste, tu n'as plus qu'à corriger..

;)
0
Merci pour la réponse.
J'ai donc recherché quelle fonction renvoyait un tableau et je suis tombé sur mysqli_fetch_array mais mon problème n'est toujours pas résolu :/
0
J'ai également essayer mysqli_fetch_row ou mysqli_fetch_assoc mais aucun d'eux ne donne un résultat probant ...
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
22 janv. 2014 à 12:32
Ta requête est en elle même problématique, tu fais un select du nombre de ligne (Count(*)) que tu rempli ensuite dans une session en tant qu'id, ce n'est pas logique, tu devrait faire un select qui récupère l'id, ensuite tu verifié via mysqli_num_rows qu'il y a un résultat et pour finir tu fait ton fetch (fetch_row te donnera $tab[0], fetch_array te donnera $tab["id"]).

PS : ta sécurité est proche de zéro, si tu utilise le pseudo
' or 1=1#
tu te connectera sans mot de passe.
0