probleme de redirection [resolu]

probleme de redirection [resolu] - PHP - Programmation

Marsh Posté le 04-11-2004 à 17:42:12    

hello all,
 
vous allez me prendre pour un fou : j'ai une page qui contiens ca:
 

Code :
  1. $r = mysql_query("SELECT email FROM membres WHERE email='$email'" ) ;
  2. $nbRows=mysql_num_rows($r);
  3. if ($nbRows > 0 ) {
  4. $msg = 'Vous êtes déjà inscrits avec cette adresse e-mail !';
  5. header("Location: ../message.php?msg=$msg" );
  6. }
  7. //print("nb rows:$nbRows" );


 
Selon que le print("nb rows:$nbRows" ); est commenté / dé-commenté la redirection s'effectu!
 
Si $nbRows=1 et que print("nb rows:$nbRows" ); est commenté le if est ignoré  
Si je le dé-commente la redirection s'effectue avec succes.
 
j'ai longtemps hesité avant de faire appel a vous parce que je trouve ce probleme completement illogique.
 
Aidez moi please  :sweat:


Message édité par veryfree le 04-11-2004 à 17:51:41
Reply

Marsh Posté le 04-11-2004 à 17:42:12   

Reply

Marsh Posté le 04-11-2004 à 17:47:57    

exit();
après ton header()

Reply

Marsh Posté le 04-11-2004 à 17:49:39    

Ayuget a écrit :

exit();
après ton header()

[:sisicaivrai]

Reply

Marsh Posté le 04-11-2004 à 17:50:07    


quoi spa bien?  :??:

Reply

Marsh Posté le 04-11-2004 à 17:51:00    

Quel boulay
 
Merci infiniment.
 
Je suis plus pret de l'oublier le "exit()"!!

Reply

Marsh Posté le 04-11-2004 à 17:52:29    

Ayuget a écrit :

quoi spa bien?  :??:


non. A partir du moment où tu as une partie de ton script qui est sensée l'arrèter (comme le header en l'occurence), le reste ne devrait pas pouvoir être appellé de manière inconditionnelle. Il devrait donc mettre un else au lieu de laisser la suite pendouiller bêtement.

Reply

Marsh Posté le 04-11-2004 à 17:52:52    

uéééééé un topik veryfree [:moazaaa]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 04-11-2004 à 17:55:11    

gizmo a écrit :

non. A partir du moment où tu as une partie de ton script qui est sensée l'arrèter (comme le header en l'occurence), le reste ne devrait pas pouvoir être appellé de manière inconditionnelle. Il devrait donc mettre un else au lieu de laisser la suite pendouiller bêtement.


 
C'est un peu ce que je me disait en fait, le header est sensé arréter le script.
Le exit() resoud le probleme mais jvai mettre un else pour faire bien  [:chrisbk]

Reply

Marsh Posté le 04-11-2004 à 17:55:12    

gizmo a écrit :

non. A partir du moment où tu as une partie de ton script qui est sensée l'arrèter (comme le header en l'occurence), le reste ne devrait pas pouvoir être appellé de manière inconditionnelle. Il devrait donc mettre un else au lieu de laisser la suite pendouiller bêtement.


D'accord.
Mais bon, j'ai aussi appris à mettre un exit() après un header, c'est p-e une mauvaise habitude. [:spamafote]
Et dans mes scripts, je met toujours un else quand il le faut [:spamafote]
 
Enfin bon voila  [:ddr555]

Reply

Marsh Posté le 04-11-2004 à 17:56:16    

simogeo a écrit :

uéééééé un topik veryfree [:moazaaa]


 
encore un topic de boulay plutot  [:oxy2]

Reply

Marsh Posté le 04-11-2004 à 17:56:16   

Reply

Marsh Posté le 04-11-2004 à 17:57:01    

le problème c'est que le exit est utilisé à tord et à travers. Il ne devrait apparitre que dans des parties de code critique (manipulation de données secrètes) et après tentatives de correction d'erreur (avec des try/catch par exemple)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed