IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Recherche dans la table impossible [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut Recherche dans la table impossible
    Bonjour,

    je suis en train de réaliser un programme d'authentification à une base de données. Le script php ne trouve pas le bon mot de passe et le bon login, c'est là mon problème. Quelqu'un peut il m'aider? Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <html>
     <head>
     </head>
     <body>
      <form name="formulaire" method="POST" action="exercice1.php">
       <table border="1" cellspacing="0" cellpadding="0" align="center">
        <tr>
         <td>
          <table>
           <tr>
            <td colspan="2" align="center"><b>Formulaire d'authentification</b></td>
           </tr>
           <tr>
            <td>Nom d'utilisateur: </td><td><input type="text" name="zoneNom"></td>
           </tr>
           <tr>
            <td>Mot de passe: </td><td><input type="text" name="zoneMdp"></td>
           </tr>
           <tr>
            <td align="center"><input type="reset" name="btonreset" value="effacer"></td><td align="center"><input type="submit" name="btonok" value="ok"></td>
           </tr>
          </table>
         </td>
        </tr>
       </table>
      </form>
     </body>
    </html>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
     $connection=mysql_connect("localhost", "root", "");
      if($connection)
      {
       $bd=mysql_select_db("aigemephp");
       if($bd)
       {
        $nu=$_POST['zoneNom'];
        $mdp=$_POST['zoneMdp'];
        $requete="select * from authentification";
        $resultat=mysql_query($requete);
     
        while ($ligne=mysql_fetch_assoc($resultat))
        { 
         if($nu=$ligne['login'] && $mdp=$ligne['motdepasse'])
          echo ("login et mot de passe trouvés");
         else
          echo ("login et mot de passe non trouvés");
        }
       }
       else
        die (mysql_error());
       }
      else
       die (mysql_error());
    ?>

  2. #2
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 237
    Par défaut
    Surtout pas une boucle pour la vérification !!!

    Fait une requête de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM authentification WHERE login='".$nu."' AND motdepasse='".$mdp."'"

  3. #3
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, dans ton test, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($nu=$ligne['login']...
    alors qu'il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($nu==$ligne['login']...
    Tu réalisais une affectation = au lieu de faire un test d'égalité ==.

    Sinon, pourquoi récupères-tu toutes les informations de la table pour après tout balayer et faire le test ? Ta requête peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = 'SELECT * FROM authentification WHERE login LIKE \''.$nu.'\' AND motdepasse LIKE \''.$mdp.'\'';
    et tu regardes si ça te renvoie une ligne (l'utilisateur est reconnu) ou aucune (utilisateur inconnu)

    PS : pour des requêtes, il vaut mieux bannir le SELECT * FROM... (je l'ai mis ici car je ne connais pas la strucure de ta table)
    PS 2 : pour la saisie du mot de passe, mieux vaut utiliser un input de type password plutôt que text

  4. #4
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Par défaut
    Merci à tous pour votre aide et vos remarques justes. Mon programme marche maintenant. Voici le bon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
     $connection=mysql_connect("localhost", "root", "");
      if($connection)
      {
       $bd=mysql_select_db("aigemephp");
       if($bd)
       {
        $nu=$_POST['zoneNom'];
        $mdp=$_POST['zoneMdp'];
        $requete="select * from authentification where nom='$nu' AND motdepasse='$mdp'";
        $resultat=mysql_query($requete);
        if($resultat)
        {
     
         echo ("password and login found");
        }
        else
         echo ("password and login not found");
       }
       else
        die (mysql_error());
       }
      else
       die (mysql_error());
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche dans une table : impossible de récupérer une saisie
    Par wolfenjava dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 21/07/2012, 21h04
  2. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  3. Réponses: 3
    Dernier message: 18/03/2006, 19h51
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo