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

Langage PHP Discussion :

problème de boucle(il sort de la boucle)


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut problème de boucle(il sort de la boucle)
    Bonjour,
    j'ai un problème de boucle,quand j'entre les login et les mots de passe ça m'affiche tout le temps ""'Check your login and / or password'""

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <html>
    <head>
    <body bgcolor="#99ccff">
    <a href="file:///C|/wamp/www/Flan/index.html"></a>
     
    </body>
     
    <?php
    session_start();
     
     
     
    echo "<center>";
    $x=mysql_connect('localhost','root','');
    mysql_select_db('application',$x);
    $v1=$_POST['Login'];
     
    $v2=$_POST['Password'];
     
     
     
    $trouv=0;
    $req="select * from authentification";
    $res=mysql_query($req);
    while($lig=mysql_fetch_array($res))
    {   
       if($lig['Login']==$v1 && $lig['Password']==$v2 )
       { if( $lig ['statut']=='admin')
           $trouv=1;
    	  else if($lig ['statut']=='user')
    	   $trouv=2;
    	  else
    	   $trouv=0;
       } 
     
     
    }   
    	if($trouv==1)
    	{ 
     
    	  echo "<script >alert(\"Vous etes admin!\" );
            </script> "; 
     
     
    	 header("location:index.php");
     
    	}
        else if ($trouv==2)
        {    echo "<script >alert(\"Vous etes user!\" );
            </script> "; 
    	     header("location:index.php");
     
        }
    	else{ 
    	//echo "<html>";
    	//echo "<head>";
    	echo "<script>";
    	echo "alert('Check your login and / or password')";
    	echo "</script>";
    	//echo "</head>";
    	//echo "</html>";
    	//echo "<b><font color=\"red\"> LOGIN OU MOT DE PASSE INCORRECT </font></b> <BR/><BR/>"; 
     
     
     
    	//header("location:index.html");
    	}
     
     
     
    ?>
    <META HTTP-EQUIV="Refresh" CONTENT="0; URL=file:///C|/wamp/www/projet/index.html">	
    </head>  
    </html>
    et je savais pas ou réside le problème, et vu que je suis nouvelle à la programmation PHP n'hésitez pas de me répondre s'il vous plaît je serai amplement reconnaissante.
    Bien cordialement
    Kaoutar

  2. #2
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Salut !

    Avant toute chose et c'est la première qui m'a fait sursauter , que veulent dire les variables $v1 et $v2 ???

    Pourquoi ne pas les appelés $pseudo et $email ? Ça serait plus simple.

    Ensuite, au lieu d'utiliser 1 ou 0 (ce qui n'est pas très parlant (pour moi en tout cas)) pour savoir s'il est user ou admin, tu peux très bien utiliser true ou false (ce qui est déjà plus parlant).

    Ensuite, au lieu de sélectionner tout depuis la table authentification, tu fais un:
    depuis ta table avec en paramètres, le pseudo et le mdp.

    Comme ça, si la requête renvoie quelque chose, tu teste s'il est admin ou user. Si elle renvoie rien, cela veut dire que le pseudo et/ou le mot de passe sont faux.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    D'accord j'ai rectifié les variables $v1 et $v2 mais j'ai pas bien saisi comment introduire FALSE et TRUE et si vous voulez bien sur me donner le syntaxe complet de avec les paramètres $pseudo et$email
    je vous remercie d'avance

  4. #4
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Pour le SELECT COUNT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $sql = 'SELECT COUNT(*) FROM authentification WHERE pseudo = ' . $pseudo . ' AND email = ' . $email . ';';
    ?>
    Ensuite, tu exécutes ta requête et tu fais ceci ensuite:

    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
     
    <?php
    //Si la requête a renvoyé quelque chose
    if($resultat_req != 0)
    {
       if($resultat_req['statut'] == 'admin')
       {
          echo "<script >alert(\"Vous etes admin!\" );</script> ";
       }
       else
       {
          echo "<script >alert(\"Vous etes user!\" );</script> ";
       }
    }
    else
    {
      echo "<script>";
      echo "alert('Check your login and / or password')";
      echo "</script>";
    }
    ?>
    En fait, le true ou false, t'en a pas besoin..... J'ai dit une connerie

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    j'ai remplacé par ce que tu m'as proposé il m'affiche une erreur:
    Parse error: syntax error,unexpested $ in c:\wamp\www\projet\authentification.php on line 50

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <html>
    <head>
    <body bgcolor="#99ccff">
    <a href="file:///C|/wamp/www/Flan/index.html"></a>
     
    </body>
     
    <?php
    session_start();
     
     
     
    echo "<center>";
    $x=mysql_connect('localhost','root','');
    mysql_select_db('application',$x);
    $pseudo=$_POST['Login'];
     
    $email=$_POST['Password'];
     
     
     
    $trouv=0;
    $req='SELECT COUNT(*) FROM authentification WHERE pseudo = ' . $pseudo . ' AND email = ' . $email . ';';
     
    $res=mysql_query($req);
    while($lig=mysql_fetch_array($res))
    {   
       //Si la requête a renvoyé quelque chose
    if($res!= 0)
    {
       if($res['statut'] == 'admin')
       {
          echo "<script >alert(\"Vous etes admin!\" );</script> ";
       }
       else
       {
          echo "<script >alert(\"Vous etes user!\" );</script> ";
       }
    }
    else
    {
      echo "<script>";
      echo "alert('Check your login and / or password')";
      echo "</script>";
    }
    ?>
     
    <META HTTP-EQUIV="Refresh" CONTENT="0; URL=file:///C|/wamp/www/projet/index.html">	
    </head>  
    </html>

  6. #6
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Il te faut enlever ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    while($lig=mysql_fetch_array($res))
    {   
    ?>
    Tu n'en as plus besoin vu que ta requête renvoie soit un seul résultat ou rien du tout.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    il me donne même résultat de mon premier syntax

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    il faut que tu lises les bonnes pratiques de codage parce que pour commencer à bien coder il faut tout d'abord commencer par bien écrire son code http://a-pellegrini.developpez.com/t.../coding-style/

    Et pour ton code essaies ça :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <html>
    <head>
    <body bgcolor="#99ccff">
    <a href="file:///C|/wamp/www/Flan/index.html"></a>
     
    </body>
     
    <?php
    session_start(); 
     
    echo "<center>";
     
    $cnn = mysql_connect('localhost', 'root', '');
    mysql_select_db('application', $cnn);
     
    $login  = mysql_real_escape_string($_POST['Login']); 
    $pwd    = mysql_real_escape_string($_POST['Password']);
     
    $sql    = "SELECT * FROM authentification WHERE authentification.Login = $login AND authentification.Password = $pwd;";
    $result = mysql_query($sql);
     
    while($user = mysql_fetch_array($result)) {
    	$userGroup = $user['statut'];
    }
     
    $msg = 'Check your login and / or password';
     
    if ($userGroup == 'admin') {
    	$msg = 'Vous etes admin!';
    } elseif ($userGroup == 'user') {
    	$msg = 'Vous etes user!';
    }
     
    echo "<script>alert('$msg');</script>";
    header("location:index.php");	
    ?>
     
    <META HTTP-EQUIV="Refresh" CONTENT="0; URL=file:///C|/wamp/www/projet/index.html">	
    </head>  
    </html>

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Bonjour
    je l'ai essayé mais quand je l'éxécute il m'affiche toujours que la page est introuvable(The page cannot be found),j'ai verifié tout de même le chemin(http://localhost/projet/authentification.php) mais en vain

Discussions similaires

  1. Problème boucle while imbriquée dans autre boucle while
    Par nattydreadnatty dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2010, 14h58
  2. Problème de création de fichiers .txt en boucle
    Par droledelolo dans le forum C++
    Réponses: 23
    Dernier message: 29/08/2008, 17h59
  3. [MySQL] Probleme au niveau du code, j'ai l'impression que rien ne sort de la boucle WHILE.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2007, 14h51
  4. [VBA-E]Problème de triet effacement de doublon sur boucle
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/09/2006, 11h06
  5. Réponses: 12
    Dernier message: 11/04/2006, 11h41

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