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écupération json (chunked) via php://input vide


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut récupération json (chunked) via php://input vide
    Bonjour,

    j'ai un appareil Iot qui tente d'envoyer des informations vers une de mes pages PHP

    Les informations sont les suivantes :
    un fichier json avec une entête :
    transfer-encoding:chunked; content-type:application/json

    Je tente sur ma page php de récupérer les infos envoyées via la fonction : php://input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST = json_decode(file_get_contents('php://input'), true);
    et j'essaie juste d'écrire dans un fichier texte les infos que je recois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fichier = 'donnes entrante'.time().'.txt';
    file_put_contents($fichier, 'test'.$_POST);
    Mais je ne reçois rien !
    Le matériel IOT passe bien sur mon fichier PHP, crée bien mon fichier texte avec dedans juste :"TEST" et rien d'autre...

    Auriez-vous une idée pour moi ?

    Merci,

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Et si tu fais simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $buffer = file_get_contents('php://input');
    file_put_contents('input.txt', date('Y-m-d H:i:s') . '==>' . print_r($buffer, true));
    ça donne quoi ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    Ca crée bien le fichier mais il est vide. Juste avec la date (2021-07-14 06:59:12==>)

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    php://input correspond au corps de la requête

    Essaie ceci pour vérifier si les en-têtes sont comme attendues :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents('input.txt', date('Y-m-d H:i:s') . ' ==> ' . print_r(getallheaders(), true));

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    Voici ce que j'ai dans le fichier

    2021-07-14 09:30:35 ==> Array
    (
    [Connection] => close
    [Content-Type] => application/json; charset=utf-8
    [Host] => thibautmarchal.be
    )

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Le Content-Length n'est pas renseigné.

    Ta situation semble corrspondre à ceci : https://bugs.php.net/bug.php?id=60826

    Il y a aussi https://bz.apache.org/bugzilla/show_bug.cgi?id=57087

    As-tu accès à la config de l'émetteur ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    J'ai accès à ceci sur l'émetteur :
    Nom : Capture.PNG
Affichages : 98
Taille : 7,6 Ko

    Je n'ai pas accès au trois premières lignes. Je peux uniquement rajouter des lignes

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Ajoute une nouvelle ligne Transfer-Encoding, avec une valeur vide (pour voir si ça enlève le Transfer-Encoding) ou "gzip" (pour éviter le "chunked")

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    Non, malheureusement, ca ne change rien

  10. #10
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Bon, il ne te reste plus qu'à te référer aux liens donnés plus haut.

    La solution consisterait à màj le serveur web ou à lui adjoindre un module pour prendre en compte cette situation.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Par défaut
    ok merci. je vais voir pour une mise d'apache

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/01/2013, 16h14
  2. Réponses: 6
    Dernier message: 10/08/2011, 08h53
  3. Récupération de données via URLLoader : données vides
    Par cedrick21 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 02/08/2010, 15h55
  4. Récupération de données dans flash via php
    Par Benuch dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 28/10/2009, 17h31
  5. [MySQL] Récupération d'image dans 1 base mysql via php
    Par jomannix dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2007, 12h54

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