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 :

Probléme dans ELSE !


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 16
    Par défaut Probléme dans ELSE !
    Bonjour , ce code marche parfaitement , mais lorsque j'entre un mot de passe ou un login qui n'existe pas sur ma BD MYSQL , ça n'affiche pas le message d'erreur ( Vous n’êtes pas un membre) , je ne sais pas pk le bloc else n'affiche pas le message d'erreur , bon voici le 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
    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
    <?php
    if(isset($_POST['nom'])){
    $nom=$_POST['nom']; }
     
    else {
    $nom="";}
     
    if(isset($_POST['password'])){
    $password=$_POST['password']; }
     
    else {
    $password="";}
     
    if (empty($nom) OR empty($password) ){
     
    echo '<font color="red">Attention aux champs vides!</font>';}
     
    else
    {
     $connect= mysql_connect("localhost","root","");
     
    $db="est2";
     
    mysql_select_db($db,$connect);
     
     
     
    $query="SELECT * FROM inscrits WHERE login='$_POST[nom]' AND pass='$_POST[password]'";
     
    $result=mysql_query($query);
     
     
    while(list($id,$login,$pass)=mysql_fetch_array($result)){
     
     
    if (($login==$_POST['nom']) && ($pass==$_POST['password'])){
     
    echo 'Bonjour <b>'.strtoupper($login).'</b>';}
     else {
     echo "Vous n’êtes pas un membre!";
     }
     
    }
     
    mysql_close();
     
        }
     
     
    ?>

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    c'est normal, ton bloc if else est dans ta boucle while qui n'est jamais exécutée car mysql_fetch_array() te retourne un tableau vide.
    Tableau vide qui veut dire que l'utilisateur n'est pas inscrit.
    Ensuite comparer tes variables $nom et $password aux données du filtre est inutile car la requête est déjà filtrée avec les mêmes données.
    Un exemple concret :
    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
     
    $nom = (isset($_POST['nom'])) ? $_POST['nom'] : '';
    $pwd = (isset($_POST['password'])) ? $_POST['password'] : '';
     
    if (empty($nom) || empty($password)) {
       echo '<font color="red">Attention aux champs vides!</font>';
    }
    else {
       $connect = mysql_connect('localhost', 'root', '');
       mysql_select_db('est2', $connect);
       $sql = "SELECT COUNT(id) AS nbOfRec
               FROM inscrits
               WHERE login='" . mysql_escape_string($nom) . "' AND pass='" . mysql_escape_string($pwd) . "'";
       $result = mysql_fetch_array(mysql_query($sql));
     
       if ($result['nbOfRec']) {
          echo 'Bonjour <b>' . strtoupper($nom) . '</b>';
       }
       else {
          echo "Vous n’êtes pas un membre!";
       }
       mysql_close();
    }
     
    ?>

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/03/2008, 13h40
  2. problème dans l'hebergement
    Par Redouane dans le forum ASP
    Réponses: 9
    Dernier message: 31/12/2003, 23h34
  3. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09
  4. Problème dans analisys Manager
    Par ien_ien23 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/07/2003, 14h38
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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