probleme de boucle(il sort tjrs de la boucle)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de boucle(il sort tjrs de la boucle)

Re: probleme de boucle(il sort tjrs de la boucle)

par Cyrano » 08 sept. 2010, 14:18

Salut,
ton problème est complètement logique.

Tu dois ralentir le rythme cérébral et tenter de te représenter ce qui se passe lors du déroulement de ton code.

Indices : si dans ta base de données il n'y avait qu'un seul utilisateur enregistré et que celui-ci avait le statut « admin» ou « user », ça fonctionnerait. Là, tu as au moins le dernier de la liste qui n'est ni l'un ni l'autre. Dans ta boucle, tu testes toutes les lignes de la table, donc à chaque tour, tu réinitialise la valeur de $trouv selon ce qui est trouvé. La boucle ne s'arrêtera pas parce qu'une valeur a été assignée à $trouv, elle s'arrêtera quand toutes les lignes auront été testées.

Tu pourrais de beaucoup te simplifier la vie en modifiant ta requête SQL : au lieu de demander toutes les lignes de la table, si tu demandais la valeur du statut là où le login correspond et le mot de passe correspond aussi ? Là, tu n'aurais 0 ou 1 résultat (1 à condition que tu aies mis un index UNIQUE sur ta colonne Login, sinon tu pourrais avoir plusieurs lignes de résultat pour chaque utilisateur utilisant le même login.)

Essaye de reformuler cette requête et reviens avec le résultat ;)

PS : je signale au passage que ça, c'est de la base de programmation, il est inutile de poster dans PHP avancé, ce n'est pas une honte de poster dans PHP Débutant, on a tous commencé par là et personne te traitera de minable parce que tu débutes.

Re: probleme de boucle(il sort tjrs de la boucle)

par K.aoutar » 08 sept. 2010, 11:58

Bonjour;
j'ai ajouté "exit" apres le header mais j'ai toujours le meme probleme :(

Re: probleme de boucle(il sort tjrs de la boucle)

par K.aoutar » 07 sept. 2010, 16:53

d'accord merci

Re: probleme de boucle(il sort tjrs de la boucle)

par dev3 » 07 sept. 2010, 16:32

Il y a un petit exemple dans le lien que je t'ai fourni :
<?php
header("Location: http://www.example.com/"); /* Redirection du navigateur */

/* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
exit;
?>

Re: probleme de boucle(il sort tjrs de la boucle)

par K.aoutar » 07 sept. 2010, 16:24

je n'ai pas compris comment faire un exit apres header s'il vous plait explicite un peu votre idée je serai amplement reconnaissante.
Bien cordialement

Re: probleme de boucle(il sort tjrs de la boucle)

par dev3 » 07 sept. 2010, 15:48

Bonjour,

il faut que tu mettes un exit après tes header sinon la suite du code est exécutée
http://php.net/manual/fr/function.header.php

probleme de boucle(il sort tjrs de la boucle)

par K.aoutar » 07 sept. 2010, 13:59

bonjour;
j'ai un probleme de boucle,quand j'entre les login et les mots de passe tout le temps m'affiche ""'Check your login and / or password'""

<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 reside le probleme, et vu que je suis nouvelle a la programmation PHP n'hesitez pas de me repondre svp je serai amplement reconnaissante.
Bien cordialement
Kaoutar