header Location et parametre d'url et param dans variable

  • Auteur de la discussion Auteur de la discussion tacata
  • Date de début Date de début
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 ??
 
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è
 
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.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut