Récupérer une URL complète dans variable en php

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Récupérer une URL complète dans variable en php

Message le Ven Juin 16, 2006 9:43

Salut,

j'ai un fichier qui me permet de rediriger une URL

je fais comme cela :
-http://www.site.com/go.php?red=http://www.google.fr
la variable $red me renvoit bien : http://www.google.fr

Seulement si je fais ca (c'est a dire une URL tres longue avec des param) :
-http://www.site.com/go.php?red=htt [...] L:fr&q=dvd

ca ne me renvoit que :
-http://www.google.fr/search?sourceid=navclient-ff

Il s'arrete au 1er &

Vous auriez une astuce ? car je peux pas basculer vers l'url complète


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 9:45

Encore avec une fonction url_encode() ton URL, et au moment de la redirection tu la décode (url_decode()).

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 10:08

En fait cette url sera pas en dur dans une page donc je peux pas l'encoder comme ca

en gros c pour faire un systeme de tracking que je poserai sur des sites


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 10:16

Bah alors récupère la variable $_SERVER['QUERY_STRING'], supprime le "red=" et redirige sur cette url.

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 10:21

J'y avais pensé ... seulement j'ai d'autres params avant $red :(


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 10:27

bah fais transforme ta chaine. Si ils sont forcément avant &red ça sera facile, sinon faudra analyser la chaine et espérer que l'url sur laquelle tu diriges n'a pas les mêmes.

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 10:29

oui mes autres params seront forcément avant le $red

ya un moyen de dire "tu recuperes le QUERY STRING apres $red seulement ?


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 10:32

Bah vu que t'as la chaine $_SERVER['QUERY_STRING'], suffit de rechercher la position de red= et de recopier $_SERVER['QUERY_STRING'] a partir de la bonne position.

J'ai plus les noms de fonctions php en tête mais ça se fait en deux lignes.

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 10:49

je connais pas cette fonction, je vais essayer de regarder dans google


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 11:22

j'ai pas de quoi valider mon code mais en gros :
Code: Tout sélectionner
$pos = strpos('red=', $_SERVER['QUERY_STRING']);
if ($pos === false)
{
   # traitement de l'erreur
}
else
{
   $url = substr($_SERVER['QUERY_STRING'], $pos + 4);
   // ta redirection
}

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 12:04

Ca semble marcher
seulement si j'ai une url du type :
http://www.google.fr/webhp?sourceid=nav ... 09,GGGL:fr

il s'arrete à :http://www.google.fr/webhp


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juin 16, 2006 13:10

A mon avis t'auras le problème tant que tu fais pas un url_encode sur ton url.

Affiche $_SERVER['QUERY_STRING'] pour voir ce que tu as vraiment dans cette variable.

yakipa
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: Mer Fév 15, 2006 22:39

Message le Ven Juin 16, 2006 13:19

Lorsque j'affiche tout j'ai bien tout

Mais l'url encode ne marchera pas vu que le lien est pas placé en dur


serval2a
WRInaute accro
WRInaute accro
 
Messages: 3453
Inscription: Lun Mar 21, 2005 18:17

Message le Ven Juin 16, 2006 13:27

Bonjour,

Le problème vient du fait que forcément dans ton url les variables que tu utilises et celles de la page que tu veux appeler sont indissociées.
Comment faire comprendre que la variable $red contient non seulement l'adresse d'une page mais également des variables utiles à la page dont par exemple la varibale $q qui ne doit pas être utilisé par ton script mais quand même incrite dans l'url de destination ?

Pour faire simple, tu pourrais (je ne connais pas ton script) récupérer chaque variable utile pour l'inscrire dans chaque url de destination, mais cela t'obligerais à utiliser des conditions pour chaque nom de domaine puisque tous n'utilisent pas les mêmes variables.

La solution semble à mon avis résider plus dans l'utilisation des fonctions serialise() et unserialise() avec le traitement de la seule variable $red.

@+


Serious
WRInaute accro
WRInaute accro
 
Messages: 2438
Inscription: Lun Nov 21, 2005 18:29

Message le Ven Juin 16, 2006 13:44

ton URL n'est pas valide, utilise urlencode().
pas d'autre solution.

Récupérer une URL complète dans variable en php

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités