Boucle php fonctionne pas

demon2602 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 Caracalla -



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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   5
 
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
Caracalla
 
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   Statut Membre Dernière intervention  
 
merci pour votre aide...mais j'ai trouve...il suffisait tout betement de rajouter un else avant la requete sql....voila
0
Caracalla
 
En effet ça tombe sous le sens
0