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

PHP & Base de données Discussion :

Récuperer des données POST qui ne possedent pas de nom de variable [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut Récuperer des données POST qui ne possedent pas de nom de variable
    Je vous explique brièvement mon probleme. J'ai developpé une appli en java 2 micro edition. Lorsque celle-ci s'installe sur un telephone, ce dernier me repond via une requete http post. Mais mon problème c'est que les données (code d'erreur pendant l'installation) ne sont pas englobées dans une variable comme se serait le cas avec un formulaire html et donc impossible de les récuperer avec $_POST .

    J'ai verifier avec ethereal, le code de retour est bien présent ("900 Success" si ca s'installe correctement) dans le corps de la requete.

    J'ai déjà essayé avec $_REQUEST, $_SERVER, apache_request_headers(), serialize() mais rien ne fonctionne. Alors la je suis un peu à court d'idée

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    Il faudrait avoir un exemplaire de requête HTTP envoyé...

    je pense que tu dois pouvoir les récupérer via $HTTP_RAW_POST_DATA

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    essaye de rediriger l'affichage vers une page php contenant juste <?php phpinfo(); ?>

    tu aura la liste de toutes les variables définies et accessibles.

    Si ca ne marche pas, interroge le serveur de la page avec fsockopen() et tu pourras récuperer et parser le flux retour (qui est forcement brut)

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    @Flagdnag encore mieux pour avoir toutes les variables accessibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre><?php var_dump($GLOBALS); ?></pre>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Je vais essayer tout ca mais en attendant voici la requete http

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Hypertext Transfer Protocol
    POST /test_install.php HTTP/1.1\r\n
    Request Method: POST
    Request URI: /test_install.php
    Request Version: HTTP/1.1
    User-Agent: Nokia6680/1.0 (3.04.35) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1\r\n
    Content-Length: 11\r\n
    Content-Type: text/plain\r\n
    x-wap-profile: "http://nds1.nds.nokia.com/uaprof/N6680r100.xml"\r\n
    X-Nokia-roamingind: 0\r\n
    X-Nokia-CONNECTION_MODE: TCP\r\n
    X-Nokia-BEARER: GPRS\r\n
    X-Nokia-GATEWAY_ID: NWG/4.1/Build70\r\n
    accept: */*\r\n
    WAP-Network-info: \r\n
    Host: xx:xx:xx:xx\r\n
    \r\n
    Line-based text data: text/plain
    900 Success
    On voit bien à la fin le code de retour

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Je pense qu'effectivement $HTTP_RAW_POST_DATA sera pour toi

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    C'est dommage, mais il ne reconnais cette variable $HTTP_RAW_POST_DATA

    J'utilise easyphp

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    arrette d'utiliser EPHP c'est uniquement un environnement de développement, pas de production, vaut mieux installer PHP, Apache et MySQL à la main, c'est pas très compliquer un bon tuto là : http://giminik.developpez.com

    de plus, cette variable n'est remplie et n'existe que quand on envoie une requête POST avec des données non interprétables comme de données de formulaire...

    fait un fichier php avec juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre><?php echo $HTTP_RAW_POST_DATA; ?></pre>
    puis ouvre une ligne de commande, fait puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    POST /ton_php.php HTTP/1.1
    User-Agent: Nokia6680/1.0 (3.04.35) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1
    Content-Length: 11
    Content-Type: text/plain
    x-wap-profile: "http://nds1.nds.nokia.com/uaprof/N6680r100.xml"
    X-Nokia-roamingind: 0
    X-Nokia-CONNECTION_MODE: TCP
    X-Nokia-BEARER: GPRS
    X-Nokia-GATEWAY_ID: NWG/4.1/Build70
    accept: */*
    WAP-Network-info: 
    Host: xx:xx:xx:xx
    
    Line-based text data: text/plain
    900 Success
    C'est toi qui a réécrit l'en-tête Host donc je suppose que tu saura la reremplir...

    normalement tu devrais voir revenir la réponse HTTP et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <pre>Line-based text data: text/plain
    900 Success</pre>
    à la fin...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    je tente avec XAMPP alors, en esperant que ca marche mieux que easyphp. Au pire des cas je passe sur mon site perso

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    je sais pas pourqoi, mais telnet ne m'affiche rien pendant la connexion, alors j'ai essayé avec cette page web:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <html>
    <head><title>envoi de données post sans variable</title></head>
    <body>
    <form method="post" action="http://192.168.1.15/test.php">
       <p>
           <label>Votre pseudo : <input type="text" name="" /></label>
       </p>
    </form>
    </body>
    </html>
    qui me renvoie une requete http de type post avec comme données "=ce que vous avez tapé"

    J'ai essayer avec le code que tu m'as indiqué, et je ne recoit rien enfin, juste les balises <pre></pre>, mais au moins la variable existe maintenant mais elle ne contient rien

  11. #11
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    le problème avec ta page, c'est que tu envoies une requête dont les informations peuvent être extraitent par PHP...

    pour TELNET, il te suffit de copier/coller la requête

    il ne l'affiche pas sous windows (bug hélas courant et connu) mais elle est bien prise en compte

  12. #12
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    [HS]
    Citation Envoyé par Swoög
    il ne l'affiche pas sous windows (bug hélas courant et connu) mais elle est bien prise en compte
    Comme dirait notre cher Billou maintenant a la retraite : "it's not a bug, it's a feature !"

    Pour telnet et l'affichage de ce que l'on tape, il suffit de :
    * lancer "telnet" (sans parametre)
    * taper "display"
    * Si la ligne "Écho local activé" n'apparait pas, taper "set LOCAL_ECHO"
    * refaire un "display" pour verifier que la ligne est maintenant bien là
    * se connecter en tapant "open hote port" (exemple : open 127.0.0.1 80)
    [/HS]

  13. #13
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ouai, bah perso, j'appelle ça un bug...

    ensuite, ça me fait plus **** de faire ta manip que de préparer ma requête dans un .txt puis hop C/C et basta

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Voici ce que je recupere avec ma page (sous ethereal), et php n'arrive pas a interpreter les données post qui arrivent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Hypertext Transfer Protocol
    POST /test.php HTTP/1.1\r\n
    Host: 192.168.1.15\r\n
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4\r\n
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
    Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n
    Accept-Encoding: gzip,deflate\r\n
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n
    Keep-Alive: 300\r\n
    Connection: keep-alive\r\n
    Referer: http://192.168.1.10/test.php\r\n
    Content-Type: application/x-www-form-urlencoded\r\n
    Content-Length: 5\r\n
    \r\n
    Line-based text data: application/x-www-form-urlencoded
    =test
    et a la fin on a "=test" que je ne retrouve pas dans $_POST

  15. #15
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ce qui est normal (que ce ne soit pas dans $_POST) puisqu'il n'y a pas de noms...

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    C'est le meme cas avec le code réponse du téléphone, donc ma petite page html simule assez bien le code de retour du téléphone . Et je n'obtient rien avec la variable $HTTP_RAW_POST_DATA.

  17. #17
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Je viens juste de m'en apercevoir en faisant des tests, mais la requête qu'envoie ton téléphone est erronée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    POST /test.0.php HTTP/1.1
    User-Agent: Nokia6680/1.0 (3.04.35) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1
    Content-length: 11
    Content-type: text/plain
    x-wap-profile: "http://nds1.nds.nokia.com/uaprof/N6680r100.xml"
    X-Nokia-roamingind: 0
    X-Nokia-CONNECTION_MODE: TCP
    X-Nokia-BEARER: GPRS
    X-Nokia-GATEWAY_ID: NWG/4.1/Build70
    accept: */*
    WAP-Network-info: a
    Host: XXXX
    Line-based text data: text/plain
     
    900 Success
    cette requête est correcte, la tienne insère un saut de ligne avant Line-based text data et aucun avec 900 Success ce qui induit le serveur en erreur, en théorie, tu devrais même avoir une erreur comme quoi ta requête est invalide (moi c'est ce qu'il s'est passé quand j'ai fait les tests)

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    Je n'ai aucune erreur, quand je regarde tout ce que ethereal a capturé, nul part apparait une erreur. Et au fait, j'ai oublié de préciser mais la ligne Line-based n'apparait pas dans la connexion http, c'est Ethereal qui la rajoute.... . Il se contente d'afficher le type des données, c'est une recopie du champ Content-type du header http

  19. #19
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans ce cas, il y a un problème quelque part...

    je t'ai (vais) envoyer une adresse de page web en MP, regarde le résultat de la requête...

    j'ai testé par telnet donc je suis sûr que ça foncitonne...

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 78
    Points
    78
    Par défaut
    C'est bon, ca marche, pour pouvoir lire ce qui est envoyé en text/plain(champ Content-type du header) la variable $HTTP_RAW_POST_DATA fonctionne bien. Par contre, avec ma page web, les données ne sont pas envoyées sous forme de text/plain d'où $HTTP_RAW_POST_DATA est vide et je pouvais donc essayer longtemps .

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] récuperer des données d'un site n'apparaissant pas dans la source
    Par cha23 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/01/2014, 16h31
  2. Récuperation des données envoyées par Form en POST
    Par bobatel dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 15h59
  3. Réponses: 5
    Dernier message: 25/04/2006, 12h14
  4. Afficher sous Word des données SQL qui contient des retours
    Par samoht dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 30/09/2005, 17h12
  5. Comment récuperer des données entrées au clavier?
    Par Elisée A. dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 08h22

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