probleme de redirection de page

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 redirection de page

par luna » 21 sept. 2006, 13:38

D'accord je croyais que le header arretais l'execution du code. Merci, c'est donc l'information qu'il me manquait. Merci.

J'ai plus qu'a testé exit().

par Ryle » 21 sept. 2006, 12:22

Le problème du header() est effectivement qu'il envoi l'information de redirection au navigateur, mais n'arrête pas l'exécution du code pour autant.
Ainsi il continue de lire ton code après avoir trouvé la première redirection et en découvre une seconde, il laisse donc tomber la première et continue sa lecture tranquillement :)

La solution de jojolapine est effectivement la bonne (en supposant naturellement que tes requêtes fonctionnent, que tu as bien des résultats etc.), en plaçant un exit() après chacun de tes header(), php s'arrêtera juste après la première redirection trouvée et l'exécutera convenablement - ce qui soit dit en passant lui évite d'avoir à lire tout le reste du code alors qu'il n'en a pas besoin :)

par jojolapine » 21 sept. 2006, 12:13

il faut ajouter un exit() après chaque header()

par Rei Itchido » 21 sept. 2006, 12:02

Je pense que ton header tout en bas pose problème.
Pour faire ça proprement, pourquoi n'utilises-tu pas une structure if elseif else?

probleme de redirection de page

par luna » 21 sept. 2006, 11:59

Bonjour,
voila selon des condition, je dois rediriger lutilisateur sur differente page, mais il me redirige toujours sur accueil.php.
$reqsql2 = mysql_query("SELECT count(num_pers) from personnel where login='$util'");
	while ($row2 = mysql_fetch_row($reqsql2))
	{
		if ($row2[0]!=1) 
		{
		header("Location: modification.php?er='log'");//ici au lieu de me rediriger dur celle-ci il me redirige sur accueil.php alors que lorsque je met un echo il arrive bien jusqu'ici.
		}
	}
		
$reqsql = mysql_query("SELECT num_pers, passwd from personnel where login='$util'");
while ($row = mysql_fetch_row($reqsql)) {
	
			if (md5($anmo)==$row[1])
			{
				if ($nomo==$renomo)
				{
				mysql_query("Update personnel set passwd=md5('$renomo') where num_pers='$row[0]'");
				} else {  echo '4';
				header("Location: modification.php?er='more'");
				}
			} else {  echo '5';
			header("Location: modification.php?er='anmo'");
			}
		
}
header("Location: accueil.php");
?> 
j'espere que vous pourrez m'aider.

merci d'avance