Boucle php fonctionne pas

Fermé
demon2602 Messages postés 3 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010 - 6 mai 2010 à 16:08
 Caracalla - 16 juin 2010 à 11:05



mais j'ai encore un ptit soucis avec mon code.. le voila...(1).quand les gens rentre leur pseudo et mot de passe,et si elle existe dans ma bdd..la boucle bienvenue fonctionne...
(2)
si les gens rentre un bon pseudo mais un faux mot de passe la boucle 'erreur mot de passe ' fonctionne

(3)si les gens rentre un faux pseudo et un faux mot de passe la boucle 'comtpe non reconnu' fonctionne

(4)..Le probleme est le suivant ..si les gens ne metten rien dans les cases pseudo et mot de passe et qu'ils appuient sur le boutton ok..la boucle 'remplissez tous les champs' et 'bienvenue' appraissent en meme temps!!!!

comment eviter cela?j'arrive pas a trouver l'erreur dans mon code!!!merci 


<code>
   1. <?php session_start(); ?>
   2. <?php require_once "connect_db.php"; ?>
   3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
   5.
   6.     <head>
   7.         <title>Page vierge</title>
   8.         <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" />
   9.     </head>
  10.
  11.     <body>
  12.
  13.
  14.         <?php
  15.
  16.         $pseudo = $_POST['pseudo'];
  17.         $mdp = $_POST['mdp'];
  18.
  19.                 if ($pseudo == "" and $mdp =="" )
  20.         {
  21.         ?>
  22.
  23.             <div id="registreform">
  24.                 <p>remplissez tous les champs</p>
  25.                 <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  26.
  27.                 <img src="images/chat.jpg">
  28.
  29.                 </div>
  30.         <?php
  31.             }
  32.
  33.         $sql = "SELECT * FROM 'gens' WHERE 'pseudo' LIKE '".$pseudo."'";
  34.         $res = qdb($sql);
  35.         if ($enregistrement = mysql_fetch_array($res))
  36.         {
  37.
  38.             if ($enregistrement['mdp'] == $mdp)
  39.             {
  40.             ?>
  41.                 <div id="registreform">
  42.                 <p>bienvenue</p>
  43.                 <a href="site.php">------>site.php<-----</a><br/><br/>
  44.
  45.                 <img src="images/chat.jpg">
  46.
  47.                 </div>
  48.                 <?php
  49.                 $_SESSION['idmembre'] =  $enregistrement['id'];
  50.                 $_SESSION['pseudo'] =  $pseudo;
  51.
  52.                 ?>
  53.
  54.             <?php
  55.             }
  56.             else
  57.             {
  58.             ?>
  59.             <p><div id="registreform">
  60.                 <p>erreur mot de passe</p>
  61.                 <a href="index.php.php">------>site.php<-----</a><br/><br/>
  62.
  63.                 <img src="images/grrr.jpg">
  64.
  65.                 </div></p>
  66.             <?php
  67.             }
  68.         }
  69.         else
  70.         {?>
  71.             <p><div id="registreform">
  72.                 <p>compte non reconnu</p>
  73.                 <a href="index.php.php">------>site.php<-----</a><br/><br/>
  74.
  75.                 <img src="images/chat.jpg">
  76.
  77.                 </div></p>
  78.
  79.         <?php
  80.         }
  81.         ?>
  82.
  83.
  84.
  85.     </body>
  86.
  87. </html>


</code>
A voir également:

5 réponses

masterchris Messages postés 82 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 8 juillet 2011 5
6 mai 2010 à 17:48
Bonsoir,
je pense que ton problème vient du fait que tes blocs <div> ne sont pas dans la condition si du php, quand tu mets:

if ($pseudo == "" and $mdp =="" )
20. {
21. ?>
22.
23. <div id="registreform">
24. <p>remplissez tous les champs</p>
25. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
26.
27. <img src="images/chat.jpg">
28.
29. </div>
30. <?php
31. }

Le bloc :
<div id="registreform">
24. <p>remplissez tous les champs</p>
25. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
26.
27. <img src="images/chat.jpg">
28.
29. </div>

S'affichera toujours;que la condition 'if' soit vraie ou fausse. Il faut mettre:

if ($pseudo == "" and $mdp =="" )
{
 echo('<div id="registreform"><p>remplissez tous les champs</p>      <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>       <img src="images/chat.jpg"></div>    ');   
}

0
demon2602 Messages postés 3 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010
6 mai 2010 à 18:04
merci pour ton aide..mais ce que t'as ecrit n'a pas de sens

ne mettant un echo il m'afficherai mots pour mots de ce qui est ecrit...

en gros c'est tu texte qu'il mafficherai..
0
masterchris Messages postés 82 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 8 juillet 2011 5
6 mai 2010 à 18:07
Est ce que t'a essayé? je pense pas, ça parait bizarre mais les balises html dans un 'echo' ça fonctionne! Je le sais car j'ai été confronté au même problème que toi et c'est cette solution qui marche donc à toi de voir...
0
Tu ne vérifies même pas si la variable $enregistrement contient quelque chose.

if ($enregistrement['mdp'] != null && $enregistrement['mdp'] == $mdp)

Ce serait par exemple bien plus correct...

Réfère-toi à : https://www.php.net/manual/en/function.mysql-fetch-array.php#41662
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
demon2602 Messages postés 3 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010
7 mai 2010 à 00:23
merci pour votre aide...mais j'ai trouve...il suffisait tout betement de rajouter un else avant la requete sql....voila
0
En effet ça tombe sous le sens
0