Problème avec un header

bravegars
Invité n'ayant pas de compte PHPfrance

20 janv. 2006, 10:02

Bonjour,

J'arrive pas à faire s'exécuter un header derriere une requête SQL. Un petit coup de main serait pas de refus. Voila le code :

Code : Tout sélectionner

if($_POST[submit]==true){ $requete1 = "UPDATE matable SET business=\"".$argent."\" WHERE entreprise=\"".$boite."\""; mysql_query ($requete1) or die ('Erreur SQL !'.$sql.'<br>'.mysql_error()); header ("location: ../compte_rendu.php?id=session"; exit(); } else if(... } else if(... } etc...
J'aurais voulu qu'après la première condition, si celle ci est vrai que le header renvoi vers la page compte_rendu, mais ça marche pas le script continue de vérifier les autres conditions. :(

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 janv. 2006, 10:25

Fautes à première vue :

Code : Tout sélectionner

header ("location: ../compte_rendu.php?id=session";
à remplacer par

Code : Tout sélectionner

header ("location: ../compte_rendu.php?id=session");
et les else if (javascript) par elseif (php).

bravegars
Invité n'ayant pas de compte PHPfrance

20 janv. 2006, 10:37

J'ai corrigé les else if, pour la parenthese j'avais oublié de la taper en recopiant le code ici. Mais tout ça ne change rien a mon probleme de header.

Code : Tout sélectionner

if($_POST[submit]==true){ $requete1 = "UPDATE matable SET business=\"".$argent."\" WHERE entreprise=\"".$boite."\""; mysql_query ($requete1) or die ('Erreur SQL !'.$sql.'<br>'.mysql_error()); header ("location: ../compte_rendu.php?id=session"); exit(); } elseif(... } elseif(... } etc...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 janv. 2006, 10:56

Est-ce que après ta condition il exécute bien la requête : $requete1 ?

bravegars
Invité n'ayant pas de compte PHPfrance

20 janv. 2006, 11:13

Oui s'il ne rencontre pas d'erreur dans les autres champs du formulaire, et non s'il rencontre par exemple 2 champs avec la meme valeur.

Excusez-moi j'ai oublié de préciser qu'il s'agit d'un formulaire avec plusieurs boutons submit. Avant ces conditions j'ai des conditions pour vérifier si deux champs contiennent la meme valeur. Et forcément si c'est le cas, ça affiche une page d'erreur avant que les conditions $_POST s'exécutent. Ce qui explique pourquoi le header ne marche pas.

Désolé je débute, et je viens seulement de m'en rendre compte. Comment je pourrais faire pour corriger ce petit souci ? Placer les conditions de comparaison de champ a la fin de mon script peut-être ?
Merci pour votre aide.

Code : Tout sélectionner

if($argent==$argent2){ header ("location: ../erreur.php?id=session"); exit(); } etc... if($_POST[submit]==true){ $requete1 = "UPDATE matable SET business=\"".$argent."\" WHERE entreprise=\"".$boite."\""; mysql_query ($requete1) or die ('Erreur SQL !'.$sql.'<br>'.mysql_error()); header ("location: ../compte_rendu.php?id=session"); exit(); } if($_POST[submit2]==true){ $requete2 = "UPDATE matable2 SET business2=\"".$argent2."\" WHERE entreprise2=\"".$boite2."\""; mysql_query ($requete2) or die ('Erreur SQL !'.$sql.'<br>'.mysql_error()); header ("location: ../compte_rendu.php?id=session"); exit(); } elseif(... } etc... // avec a la fin un header identique header ("location: ../compte_rendu.php?id=session"); exit();

Eléphanteau du PHP | 33 Messages

20 janv. 2006, 13:19

Il ne faut pas de echo avant un header
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.