Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2011, 21h58   #1
 
Inscription : février 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 16
Points : -3
Points : -3
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 :
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();
 
    }
 
 
?>
onlinematchs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 23h27   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
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 :
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();
}
 
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h32.


 
 
 
 
Partenaires

Hébergement Web