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 :

Récupérer POST Body


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut Récupérer POST Body
    Bonjour à tous,

    Mon script PHP reçoit une requète POST d'un autre programme et est censé la traiter.

    la requète est de cette forme : http://posttestserver.com/data/2012/...53.27959392604

    C'est à dire qu'il n'y a pas de paramètres, tout est dans le body.

    Je voudrais savoir comment récupérer le body de cette requête sachant que je ne peux pas utiliser $_POST['index_quelconque'].

    J'ai vu qu'il y'avait moyen de lire php://input pour obtenir ces informations, mais je ne lis pas mon body.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    En utilisant : $post_body = file_get_contents('php://input'); ?
    C'est l'équivalent de $RAW_POST_DATA
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    En fait, j'avais déjà essayé et ça ne me retournait rien.
    Mais je me demande si ça ne viens pas du programme C (qui crée la requète POST).
    Est-il possible de créer une telle requète via cUrl (c'est à dire avec du code directement dans le body), pour que je puisse tester moi-même ?

    Pour l'instant, j'ai le script suivant qui m'envoie un fichier :
    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
    20
    21
    22
    23
    24
    25
    26
    27
     
    /*Initialisation de la ressource curl*/
    $c = curl_init();
    /*L'url est celle de la page courante pour que le script s'appel lui même*/
    curl_setopt($c, CURLOPT_URL, 'http://posttestserver.com/post.php');
    /*On indique à curl de nous retourner le contenu de la requête plutôt que de l'afficher*/
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    /*On indique à curl de ne pas retourner les headers http de la réponse dans la chaine de retour*/
    curl_setopt($c, CURLOPT_HEADER, false);
    /*On indique à curl d'envoyer une requete post*/
    curl_setopt($c, CURLOPT_POST,true);
    /*On donne les paramêtre de la requete post*/
    curl_setopt($c, CURLOPT_POSTFIELDS,array('hello'=>'@C:\\post\\Hello', 'other'=>'toto'));
    /*On execute la requete*/
    $output = curl_exec($c);
    /*On a une erreur alors on la leve*/
    if($output === false)
    {
    	echo('Erreur curl : '.curl_error($c));
    }
    /*Si tout c'est bien passé on affiche le contenu de la requête*/
    else
    {
    	var_dump($output);
    }
    /*On ferme la ressource*/
    curl_close($c);

    EDIT : Bon, j'ai trouvé, pour info il faut mettre du texte en dur plutot qu'un array comme paramètre pour cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    curl_setopt($c, CURLOPT_POSTFIELDS,array('hello'=>'@C:\\post\\Hello', 'other'=>'toto'));
    Et donc, ton code fonctionne bien, merci !

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

Discussions similaires

  1. Récupérer "entity-body" requête HTTP Post
    Par mike76 dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2012, 09h10
  2. Récupérer $POST de formulaire créer par JAVASCRIPT pour traitement PHP
    Par rodblochon dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/03/2010, 06h14
  3. [XML] comment récupérer un arbre xml posté par http ?
    Par tomperso dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/07/2004, 10h29

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