Page 1 sur 1

Question : Récupération d'une variable dans une URL avec GET

Posté : 03 janv. 2009, 18:09
par pacoch
Bonjour !

Je me permets un petit post sur ce forum en espérant être dans le juste... je tourne depuis plusieurs jours maintenant avec un problème pour la récupération d'une variable provenant d'une URL et je n'y arrive pas.. C'est pourquoi je viens "crier" au secours parmis vous :-)

Voici le principe :

L'URL que j'ai :
http://www.monsite.com/facture.php?id_c ... on=5113767

Cette URL m'est retournée par une banque suite à un paiement. Je voudrais récupérer l'id_com et le Transaction numéro..

Voici mon code actuel :
foreach($_GET as $id_com => $value) {}
Mais avec cela je ne récupère que le mot "Transaction" :? et dès lors j'ai toutes les erreurs possibles.

Pouvez-vous s'il vous plaît m'aider à ressortir ces deux variables ?

Merci beaucoup et bonne année !!!

Pascal

Posté : 04 janv. 2009, 15:46
par fab
Déjà $_GET['id_com'] et $_GET['Transaction'] Feront l'affaire
après $_SERVER['REQUEST_URI'] te récuperera /facture.php?id_com=&14076&Transaction=5113767
donc là tu fais un explode sur les & et la case 1 de ton tableau contiendra ton numéro :)

Posté : 05 janv. 2009, 09:07
par pacoch
Bonjour et merci pour l'aide.

J'ai déjà essayé avec les $_GET['id_com'] mais il ne les prends étrangement pas.
Je ne sais pas si cela vient du fait que c'est un retour envoyé par une banque, en fait lors d'un paiement, on quitte le site le temps du paiement et le retour est l'url postée plus haut.

Eventuellement qu'avec l'idée de reprendre l'entier de l'url puis l'explode ce serait possible.. Mais je n'arrive pas du tout à le faire fonctionner.

Quelqu'un aurait svp la possibilité de me donner un bout du code ?

Merci beaucoup de votre aide et patiente !
Pascal

Re: Question : Récupération d'une variable dans une URL avec

Posté : 05 janv. 2009, 10:07
par Calimero
Bonjour (et bonne année !),
L'URL que j'ai :
http://www.monsite.com/facture.php?id_c ... on=5113767

Cette URL m'est retournée par une banque suite à un paiement. Je voudrais récupérer l'id_com et le Transaction numéro..
Si on fait un simple découpage visuel de cette adresse (avec les délimiteurs de paramètres d'url habituels, soit ? et & (ainsi que = pour distinguer chaque clé de chaque valeur associée), que voyons-nous ? (J'ajoute des retours à la ligne pour la lisibilité)

Code : Tout sélectionner

? id_com= & 14076 & Transaction=5113767
Il y a donc un & parasite entre le "id_com=" et la valeur associée, ce qui empêche PHP de te remplir correctement la variable $_GET que tu attends. As-tu la possibilité de faire disparaître cette coquille ? Car si oui, le reste de ton code va marcher comme sur des roulettes 8-)
Voici mon code actuel :
foreach($_GET as $id_com => $value) {}
Mais avec cela je ne récupère que le mot "Transaction" :? et dès lors j'ai toutes les erreurs possibles.
Tout ça est correct, à condition d'avoir une URL avec un format lui aussi correct (ce qui explique que dans ton cas, cela fonctionne pour une variable mais pas pour l'autre).

Posté : 05 janv. 2009, 10:27
par pacoch
Hello,

Merci pour la réponse détaillée et claire !

Malheureusement c'est la banque qui me retourne ces valeurs à la noix :-)

OK, je comprends donc maintenant que les & ennuient la récupération.. Dès lors, il faudrait que j'utilise cet explode proposé par fab... mais je n'y arrive pas..

J'ai regardé avec la banque si il pouvait me virer les & parasites mais ils n'acceptent pas de modifications.. je pense que c'est pour tout le monde la même chose.. tant pis...

Merci encore pour l'aide !!

Et BONNE ANNEE !!!!

Pascal

Posté : 05 janv. 2009, 10:42
par fab
Dans ce cas partons du principe que l'url renvoyée par la banque est toujours de la même forme soit :
$_SERVER['REQUEST_URI'] => /facture.php?id_com=&14076&Transaction=5113767
$array = explode('&',$_SERVER['REQUEST_URI']);

echo $array[0]; // te renvoie /facture.php?id_com
echo $array[1]; // te renvoie 14076 soit je pense id_com
echo $array[2]; // te renvoie Transaction=5113767

Donc il te reste le transaction à gerer car tu as la valeur de ton id_com dans $array[1]
Pour le transaction ( suite du code précedent ) :
$array2 = explode('=',$array[2]);

echo $array2[0]; // te renvoie Transaction
echo $array2[1]; // te renvoie 5113767 soit ta Transaction

Posté : 05 janv. 2009, 18:25
par pacoch
Fabuleux !!

Merci beaucoup à vous deux Fab & Calimero pour le coup de main !! Tout est maintenant en ordre..

C'est horrible ce que l'on peut s'ennuyer quand on ne connait pas bien les variables et/ou les synthaxes exactes.

Merci beaucoup !!!! et encore bonne année !

Pascal