header Location et parametre d'url et param dans variable

WRInaute discret
bonjour
voici le probleme rencontré

Code:
$url = "http://www.dom.tld/page.php?param1=valparam1&param2=valparam2";
header("location: $url");
ou
Code:
header("location: "'" . $url ."'");

test avec
Code:
$url = "http://www.dom.tld/page.php?param1=valparam1&param2=valparam2";
header("Refresh: 1;url=$url"); 
echo $url;

resultat
dans les 2 cas affichage de la page
page.php sans les parametres;
echo renvoie bien la chaine dans sa totalité


Code:
header("location: http:=www.dom.tld/page.php?param1=valparam1&param2=valparam2");
aucun problème


Une idée, une piste ??
 
WRInaute discret
reprenons du début
En faite j'ai été incomplet dans mon explicatipn

je souhiate renvoyé ma page vers l'url récupéré d'un fichier xml

Code:
[...]
eregi("<link>(.*)</link>",$items[$i+1], $link); 
[...]
header("refresh: 1;url=" .$link[1]);
echo $link[1;
dans ce cas les parametre NE SONT PAS TRANSMIS

Code:
[...]
eregi("<link>(.*)</link>",$items[$i+1], $link); 
[...]
// Pour test j"affecte une varaible en dure à ma varaible
$link[1] ="http:www.dom.tld/page.php?param1=vp1&param2=vp2"
header("refresh: 1;url=" .$link[1]);
echo $link[1];
dans ce cas les parametre SONT BIEN TRANSMIS

dans les 2 cas l'echo afficHe la chaine dans sont intégralité

hypotese le format de la variable retourné par eregi n'est pas une chaine.
j'ai donc testé avec strval
Code:
$url = strval($link[1];
header("refresh: 1;url=" .$url;
sans succè
 
WRInaute accro
tacata a dit:
Code:
[...]
eregi("<link>(.*)</link>",$items[$i+1], $link); 
[...]

C'est pour ça qu'on a inventé des parsers XML. Au minimum les "&" sont encodés en XML ("&amp;"), donc tu vas obtenir une URL encodée en XML, pas ce que tu espères.

tacata a dit:
dans ce cas les parametre NE SONT PAS TRANSMIS

Comment tu détectes qu'ils ne sont pas transmis? En voyant que le script de destination ne les récupère pas? A mon avis il récupère le premier, puis il se perd pour la suite à cause de "amp;" superflus: au lieu d'envoyer sur toto.truc/machin?param1=valeur1&param2=valeur2 ça envoie sur toto.truc/machin?param1=valeur1&amp;param2=valeur, non?

tacata a dit:
dans les 2 cas l'echo afficHe la chaine dans sont intégralité

Elle est toujours complète, et comme c'est du bon HTML, ton browser décode le &amp; donc tu n'y vois que du feu. Regarde le source de la page dans ce cas, tu verras ce qu'il y a vraiment dans ta chaîne.

Jacques.
 
Discussions similaires
Haut