Page 1 sur 1

fonction header Location : sur Url

Posté : 15 févr. 2010, 12:21
par energie13
Bonjour,
Je galère sur un truc tout con, je m'explique :
J'utilise une adresse :
http://monserveur/monappli/index.php?action=6&test=34

Je mets a jour mon enregistrement puis demande de retourner a la page d'accueil :

Code : Tout sélectionner

$updateGoTo = "index.php?action=7"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); }
comme je suis deja dans index.php
l'url se change en
http://monserveur/monappli/index.php?ac ... =7&test=34
(il me rajoute "action=6" du coup ma page ne change pas. :(
Je ne vois pas trop comment faire pour le coup puisque je passe toujours par ma page index.php pour charger les différentes modules.
Besoin de votre aide.
Je vous remercie par avance

Re: fonction header Location : sur Url

Posté : 15 févr. 2010, 12:29
par stealth35
avec parse_str + http_build_query
parse_str($_SERVER['QUERY_STRING'], $query);
$query['action'] = 7;
header(sprintf("Location: %s", http_build_query($query)));

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 09:22
par energie13
Merci pour la réponse :)
J'ai testé avec le code :

Code : Tout sélectionner

$updateGoTo['action'] = 6; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= parse_str($_SERVER['QUERY_STRING'], $updateGoTo); } header(sprintf("Location: %s", http_build_query($updateGoTo))); }
et j'ai une erreur sous firefox (pas sous ie 6)
Warning: http_build_query() [function.http-build-query]: Parameter 1 expected to be Array or Object. Incorrect value given. in /var/www/html/MonAppli/Appli/MODULES/modifTest.php on line 74
la ligne 74 correspond a l'header. Il doit me manquer un parametre
et lorsque je colle directement le code. Plus d'erreur mais une page 404 not found.
Je ne comprends pas :( je continue a chercher depuis hier soir... Merci encore pour ta reponse

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 10:57
par stealth35
normal c'est pas bon, faut que tu fasse comme j'ai mis

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 14:10
par energie13
Je viens d'essayer la fonction location a l'air de marcher mais me renvoie vers une page 404. comme si mon url etait mauvaise.
Je dois peut etre rajouter un parametre supplémentaire ? mon but est d'aller a l'url index.php?action=6.
Mais l'update de l'enregistrement a bien fonctionné. Je galère :(

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 15:12
par stealth35
parse_str($_SERVER['QUERY_STRING'],  $query);
$query['action'] = 7;
header(sprintf("Location: index.php?%s", http_build_query($query)));

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 15:18
par AB
En même temps, si tu n'as pas d'autres variables dans l'url à reporter dans ta page d'index, pas besoin d'analyser l'url donc tu peux faire simplement
$updateGoTo = "index.php?action=6";
header(sprintf("Location: %s", $updateGoTo));

Re: fonction header Location : sur Url

Posté : 16 févr. 2010, 16:50
par energie13
Merci :)
Ca fonctionne désormais. Encore merci
Bonne fin de journée