Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recuperation de la chaine POST

5 réponses
Avatar
Gilles RONSIN
Salut

Je travaille sur la récupération de paramètres envoyés par un
appareil. Il poste régulièrement ses paramètres en HTTP sur un
serveur apache.

Si dans le body on envoie les paramètres sous la forme :

param1=valeur1&param2=valeur2

Il est facile de récupérer $_POST['param1'] et $_POST['param2']

Mais comment récupérer la chaine complète non interprétée ?

je cherche à obtenir $params = "param1=valeur1&param2=valeur2"

Sur une méthode GET on peut récupérer dans $_SERVER['URI']
mais avec une méthode POST ???

Merci
--
Site : http://gilles.ronsin.free.fr
Recherches ciblées http://gilles.ronsin.free.fr/#search
Il est impossible pour un optimiste d'être agréablement surpris.

5 réponses

Avatar
Olivier Miakinen
Bonjour,


Je travaille sur la récupération de paramètres envoyés par un
appareil. Il poste régulièrement ses paramètres en HTTP sur un
serveur apache.

Si dans le body on envoie les paramètres sous la forme :

param1=valeur1&param2=valeur2

Il est facile de récupérer $_POST['param1'] et $_POST['param2']


Ah non ! Même si c'est une requête de type POST, les envois de la forme
param1=valeur1&param2=valeur2 (donc dans l'URL) seront récupérés dans
$_GET. Les paramètre réellement passés en POST le sont autrement (il
faudrait lire la norme HTTP pour plus de détails, mais c'est hors-sujet
dans ce groupe).

Mais comment récupérer la chaine complète non interprétée ?

je cherche à obtenir $params = "param1=valeur1&param2=valeur2"


Ah ? Et comment feras-tu si dans les paramètres il y a un fichier
binaire, par exemple une image ? Ou tout simplement si dans le fichier
il y a des « & » et des « = » ?

Sur une méthode GET on peut récupérer dans $_SERVER['URI']
mais avec une méthode POST ???


$_POST ou $_REQUEST

Avatar
Gilles RONSIN
Olivier Miakinen <om+, le ven. 20 avr. 2007
12:50:00, écrivait ceci:

Salut Olivier,

Ah non ! Même si c'est une requête de type POST, les envois de la
forme param1=valeur1&param2=valeur2 (donc dans l'URL) seront
récupérés dans $_GET. Les paramètre réellement passés en POST le
sont autrement (il faudrait lire la norme HTTP pour plus de
détails, mais c'est hors-sujet dans ce groupe).


Le flux que nous recevons est de la forme

POST /url.php HTTP/1.0
User-Agent: xxxx
Content-Type: application/x-www-form-urlencoded
Content-Length: xx

param1=valeur1&param2=valeur2

donc les $_GET sont vides

Mais comment récupérer la chaine complète non interprétée ?
je cherche à obtenir $params = "param1=valeur1&param2=valeur2"


Ah ? Et comment feras-tu si dans les paramètres il y a un fichier
binaire, par exemple une image ? Ou tout simplement si dans le
fichier il y a des « & » et des « = » ?


Il n'y aura pas dans cette application.


En fait j'ai fini par trouver :

la chaine brute est disponible dans
$HTTP_RAW_POST_DATA ou $GLOBALS['HTTP_RAW_POST_DATA']

en ayant pris soin de paramétrer le serveur en activant
always_populate_raw_post_data = On

Merci d'avoir répondu ;-)

--
Site : http://gilles.ronsin.free.fr
Recherches ciblées http://gilles.ronsin.free.fr/#search
Il est impossible pour un optimiste d'être agréablement surpris.


Avatar
Patrick Mevzek
Je travaille sur la récupération de paramètres envoyés par un
appareil. Il poste régulièrement ses paramètres en HTTP sur un
serveur apache.

Si dans le body on envoie les paramètres sous la forme :

param1=valeur1&param2=valeur2


Attention, ce n'est pas le seul codage possible au niveau de la partie
document lors d'un POST.
Si vous ne contrôlez pas la page HTML où se situe le formulaire qui
déclenche cet envoi, vous risquez d'avoir des surprises.

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
Olivier Miakinen
Bonjour Gilles,


En fait j'ai fini par trouver :

la chaine brute est disponible dans
$HTTP_RAW_POST_DATA ou $GLOBALS['HTTP_RAW_POST_DATA']

en ayant pris soin de paramétrer le serveur en activant
always_populate_raw_post_data = On

Merci d'avoir répondu ;-)


Eh bien toutes mes excuses pour ma réponse à côté de la plaque, et
merci d'avoir donné la bonne réponse. Il va falloir vraiment que je me
renseigne sur le fonctionnement interne du protocole HTTP pour éviter
de dire d'autres bêtises à l'avenir.

Avatar
Gilles RONSIN
Patrick Mevzek , le ven. 20 avr.
2007 16:21:43, écrivait ceci:

Salut Patrick,

Attention, ce n'est pas le seul codage possible au niveau de la
partie document lors d'un POST.
Si vous ne contrôlez pas la page HTML où se situe le formulaire
qui déclenche cet envoi, vous risquez d'avoir des surprises.


Merci pour cet avertissement ;-)

C'est une chaine complète. On controle l'émetteur (les appareils) et le
récepteur (le serveur).
Par contre il est difficile de voir les bugs de mise en forme des
paramètres d'un coté comme de l'autre.
Maintenant je peux valider qu'un défaut vient d'un problème de
transmission ou d'analyse.


--
Site : http://gilles.ronsin.free.fr
Recherches ciblées http://gilles.ronsin.free.fr/#search
Il est impossible pour un optimiste d'être agréablement surpris.