Page 1 sur 2

Header (paralysant...)

Posté : 15 mai 2006, 13:40
par ephemere
Salut a tous :D

Voila je bloque sur un etrange probleme:

Soit un bouton 'valider'...
if ($_POST['valider'])
{$sql= "INSERT INTO matable(champ1, champs2, champs3...) VALUES('".$1."','".$2."','".$3."'...)";
$req = mysql_query($sqlinsert) or die(mysql_error()); 
Jusque là pas trop de soucis, tout fonctionne bien. Par contre ça se complique si je rajoute une redirection en haut de la page :
if ($_POST['valider']) {header ("Location: mapage.php");}
Pourtant je l'ai déjà fait des centaines de fois et y'avait aucun de probleme !! La ça me fait bien la redirection mais la requète ne s'éxecute pas...
question: POURQUOI ?

Posté : 15 mai 2006, 14:36
par ephemere
Petite précision:
J'ai sur ma page une liste déroulante qui recharge la page lorsque l'on change sa valeur...

si je n'y touche pas, le bouton valider effectue bien ses deux opérations. Si j'y touche, seule la redirection se fait et la requete ne s'éxecute pas...

Le probleme reste entier je ne voi pas pourquoi le fait que la page soit rechargée désactive ma requete..!

Posté : 15 mai 2006, 14:53
par guilt92
Si tu rappelles ta page, il n'y a plus de POST si ce n'est pas validé par le formulaire, donc ta page ne rentre plus dans le IF.

Tu dois avoir un message d'erreur te disant que la variable n'est pas définie non ?

Posté : 15 mai 2006, 15:01
par ephemere
hmm.. Non je n'ai pas de message d'erreur mais pourrais tu etre un peu plus précis j'ai pas tout bien compris...

A propos si je n'ai pas le header mais que je recharge ma page avec ma liste déroulante toutes les variables sont définies et ma requete fonctionne..

Posté : 15 mai 2006, 15:33
par Ryle
La commande header renvoi l'utilisateur sur une autre page mais ne fait absolument pas suivre les infos qui ont été saisies. En résumé, dès le moment où tu fais le header, aucune des informations passée en POST ne seront transférées.

Si tu en as besoin, il faut soit le faire manuellement en passant tes variables dans l'url (elles seront alors à récupérées en get), soit tout simplement appeller la page directement qui va traiter les données depuis le formulaire (action=).

Posté : 15 mai 2006, 15:52
par ephemere
non non je n'ai pas dit que je comptait sur header pour transférer les données vers ou que ce soit. J'ai di que deux action sont associées au bouton valider, d'abord le insert into puis le header, qui renvoi vers une page qui dit que les données ont bien été enregistrées dans la base.

Je l'ai déja fait plein de fois mais la avec cette fameuse liste déroulante qui recharge la page pas moyen d'utiliser les deux actions pour le meme bouton.

Posté : 15 mai 2006, 17:05
par guilt92
je pense que l'on va avoir besoin d un peu plus de code pour t aider

Posté : 15 mai 2006, 17:13
par ephemere
Bon ben je vois que ça inspire pas beaucoup de monde...

autre chose qui pourrait me permettre de contourner le probleme:
est ce que vous savez pourquoi ma redirection onclick marche pas:

Code : Tout sélectionner

<input name="valider" type="submit" id="valider" onclick="document.location='http://www.google.com'"value="Valider" />

Posté : 16 mai 2006, 11:51
par ephemere
Je reposte pas un nouveau message mais j'ai une nouvelle question en rapport avec ce que j'ai écrit ci-dessus:

j'ai une liste déroulante:

<select name="toto" id="toto" onchange="document.forms['titi'].submit();">

Donc comme vous pouvez le voir elle me recharge ma page a chaque fois qu'on la modifie. Mais le probleme c'est que ça recharge sans garder les parametres URL.

Y a t'il moyen de les conserver???

Euh..je sais que c'est pas poli mais...REPONSE URGENTE SOUHAITEE :!: :!:

Posté : 16 mai 2006, 11:52
par zeus
peut-être avec un .reload plutot qu'un .submit :-k

Posté : 16 mai 2006, 11:56
par ephemere
Ben je viens de faire
<select name="region" id="region" onchange="document.forms['titit'].reload();">
Mais ça marche pas du tout au contraire le chargement se fait meme pas...

Syntaxe??

Posté : 16 mai 2006, 11:59
par charabia
titit ou titi...?

Posté : 16 mai 2006, 12:00
par ephemere
va pour titi :wink:

Posté : 16 mai 2006, 12:03
par charabia
essaies de rajouter un .location dans ton onchange. document.location...etc

Posté : 16 mai 2006, 12:08
par ephemere
<select name="region" id="region" onchange="document.location.forms['grosminet'].submit();">.... :wink:

Marche pas.
Mais alors pas du tout. :-k