$_POST : Un tableau de variables transmises via la méthode HTTP POST. est une variable globale automatique.
$GLOBALS['HTTP_RAW_POST_DATA'] : Générez toujours des variables contenant des données POST brutes. Cette variable n'est générée que lorsque des données d'un type MIME non reconnu sont rencontrées. $HTTP_RAW_POST_DATA n'est pas disponible pour les données de formulaire enctype="multipart/form-data".
C'est-à-dire que fondamentalement $GLOBALS['HTTP_RAW_POST_DATA'] et $_POST sont identiques.
Mais si les données publiées ne sont pas reconnues par PHP, vous pouvez utiliser $GLOBALS['HTTP_RAW_POST_DATA'] pour les recevoir, comme du texte/xml ou du savon, etc.
Explication supplémentaire : Le type de données reconnu par PHP par défaut est le type de données standard application/x-www.form-urlencoded.
C'est ce que dit le manuel
Toujours générer des variables contenant le POST d'origine
données. Sinon, cette variable n'est générée que lorsque des données d'un type MIME non reconnu sont rencontrées. Cependant, une meilleure façon d'accéder aux données POST brutes consiste à
php://entrée. $HTTP_RAW_POST_DATA pour enctype="multipart/form-data"
Les données du formulaire ne sont pas disponibles.
Problème : $HTTP_RAW_POST_DATA == $_POST
?
Selon le manuel, la réponse devrait être non.
S'ils sont différents, quelle est leur différence ?
Je connais la réponse, comme suit :
Le HTTP POST RAW/non interprété
les informations sont accessibles avec :
$GLOBALS['HTTP_RAW_POST_DATA']
Ceci est utile dans les cas où le
post Content-Type n'est pas quelque chose que PHP comprend (comme
text/xml).
C'est-à-dire, en gros, $GLOBALS['HTTP_RAW_POST_DATA'] et
$_POST c'est pareil. Mais si les données postées ne sont pas reconnues par PHP, vous pouvez utiliser
$GLOBALS['HTTP_RAW_POST_DATA'] à recevoir, tel que text/xml ou soap
etc.
Le type de données reconnu par PHP par défaut est le type de données standard application/x-www.form-urlencoded
Utiliser Content-Type=text/xml
Tapez, soumettez le contenu d'un document XML au serveur php, comment obtenir ces données POST.
Le HTTP POST RAW / non interprété
les informations sont accessibles avec : $GLOBALS['HTTP_RAW_POST_DATA']
Ceci est utile dans les cas où le type de contenu de la publication n'est pas
quelque chose que PHP comprend (comme text/xml). Il est analysé dans un tableau $_POST, donc le prototype est conservé et transmis à $GLOBALS['HTTP_RAW_POST_DATA']
recevoir.
Il y a un autre élément php://input
Cette fonction peut également être implémentée
php://input permet de lire les données brutes du POST. et
Il met moins de pression sur la mémoire que $HTTP_RAW_POST_DATA et ne nécessite aucun php.ini spécial
installation. php://input ne peut pas être utilisé avec enctype="multipart/form-data".
Postuler
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!