IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

transmettre du json avec GET


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut transmettre du json avec GET
    bonjour,
    je souhaite transmettre via la methode GET du protocole http une variable au format Json.
    Est-ce possible ?
    Je pose cette question car quand je récupère la variable elle est complètement altérée avec de l'encodage "bizarre".
    Voici la version en codée avant l'envoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"chiffre_affaire":"25000","fax":"00.00.00.00","tel":"01.01.01.01","mail":"plop@free.fr","type":null,"denomination":"un test","adresse1":"rue des roses","adresse2":"","adresse3":"","cp":"75000","ville":"Paris"}
    et voici ce que je récupère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %7B%22chiffre_affaire%22:%2225000%22,%22fax%22:%2200.00.00.00%22,%22tel%22:%2201.01.01.01%22,%22mail%22:%22plop@free.fr%22,%22type%22:null,%22denomination%22:%22un
    Comment remédier à cela ?
    Merci pour votre aide.

  2. #2
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    tu l'envois dans un form ou tu fait de l'ajax ?

    c'est où que tu a le problème quand tu le récupère dans ta page php genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $toto = $_GET['maVariable'];
    echo($toto); // %22toto ...
    et puis transmettre du jSon avec GET c'est pas super vue que ça rallonge ta requête moi je le fait avec un POST comme ca pas de problèmes de longueur de requête et en plus tu peux espérer que ta requête ne sera pas transformée en langage d'URL vue que c'est pas l'URL qui la véhiculera.

    Après je risque de me faire crier dessus pas les puristes qui disent "GET c'est pour réupérer les données et POST pour les envoyer"

    Mouarf c'est tout aussi falsifiable de toute façon.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    Alors,
    je récupère des valeurs depuis un formulaire envoyé en POST.
    Ces valeurs sont ensuite converties en JSON.
    Ce JSON est ensuite envoyé dans le cadre d'un webservice en GET (qui est la seule méthode que je peux utiliser).
    C'est l'appli qui récupère le json qui m'affiche cet encodage bizarre et non le PHP intial

  4. #4
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    bon déjà c'est pas un langage bizzard c'est un codage url. %20 est égale à espace.

    si tu regarde les requètes de tes recherches google t'en verra sans doute dans ta barre d'adresse.

    ensuite est ce que c'est toi qui a codé l'appli qui récupère ton GET ?

    parseque c'est ton appli qui a un problème elle ne decode pas le codage url.

    ou bien c'est que tu ne l'envois pas comme il faut...

    toi tu fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"chiffre_affaire":"25000","fax":"00.00.00.00","tel":"01.01.01.01","mail":"plop@free.fr","type":null,"denomination":"un test","adresse1":"rue des roses","adresse2":"","adresse3":"","cp":"75000","ville":"Paris"}
    il faut soit faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monsite.com?chiffre_affaire=25000&...
    soit ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monsite.com?monObjJson={"chiffre_affaire":"25000","fax":"00.00.00.00","tel":"01.01.01.01","mail":"plop@free.fr","type":null,"denomination":"un test","adresse1":"rue des roses","adresse2":"","adresse3":"","cp":"75000","ville":"Paris"}
    apres c'est à toi de voir.

    le truc c'est que tu ne peux pas envoyer du json directement par GET ou POST tu dois le mettre dans une variable ou le transformer entièrement en requête.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    l'appli qui reçoit du json est une appli REST qui elle même renvoit du json (et là je n'ai aucun problème d'encodage).
    Je pense opter pour cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsite.com?chiffre_affaire=25000&...
    mais si il y a des espaces dans mes variables cela revient au même non ?

    ça m'arrangerait de pouvoir transmettre du json comme je le fais avec l'appli REST

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Citation Envoyé par hiul dragonfel
    parseque c'est ton appli qui a un problème elle ne decode pas le codage url.
    Même si j'ai jamais utilisé JSon, j'ai le même sentiment.
    L'Url est encodée, mais pas décodée.
    As tu essayé la fonction urldecode() ?

  7. #7
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    je connais pas REST mais si tu n'a pas de moyen de décoder une url alors que tu peux lui envoyer une requète html c'est null ^^

    dsl mais il doit sans doute y avoir une fonction pour ça parseque sinon tu vas devoir t'amuser à la coder.

    c'est pas difficile mais c'est plutôt long alors bon courage

    tien la référence rfc : docRFC2396 sur le codage d'url.

    vue que ça dépend du codage de ta page.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 247
    Points : 78
    Points
    78
    Par défaut
    Merci, désolé pour le délai de réponse, je me suis penché sur autre chose.
    J'ai fait un petit traitement sur la variable que je récupère (remplacer tous les %...) qui fonctionne mais je vais vois si je ne peux pas faire cela plus proprement.

Discussions similaires

  1. Transmettre une URL avec la méthode GET
    Par Jarode01 dans le forum Langage
    Réponses: 3
    Dernier message: 05/09/2009, 20h51
  2. Transfet de donnée avec get
    Par jo281 dans le forum ASP
    Réponses: 1
    Dernier message: 01/12/2005, 21h49
  3. Problèmes avec gets
    Par al85 dans le forum C
    Réponses: 6
    Dernier message: 11/05/2005, 08h42
  4. problème avec GET DIAGNOSTICS
    Par hpghost dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/07/2004, 11h59
  5. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo