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

Petit nouveau ! | 4 Messages

03 janv. 2009, 18:09

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

ViPHP
fab
ViPHP | 2657 Messages

04 janv. 2009, 15:46

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 :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Petit nouveau ! | 4 Messages

05 janv. 2009, 09:07

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

ViPHP
ViPHP | 2287 Messages

05 janv. 2009, 10:07

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).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 4 Messages

05 janv. 2009, 10:27

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

ViPHP
fab
ViPHP | 2657 Messages

05 janv. 2009, 10:42

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
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Petit nouveau ! | 4 Messages

05 janv. 2009, 18:25

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