114 votes

Comment récupérer les données utiles de la demande

J'utilise PHP , ExtJS y magasin ajax .

Il envoie des données (lors de la création, la mise à jour, la destruction) pas en POST ou GET. Dans le Console chromée Je vois mes paramètres sortants sous forme de JSON dans le " Charge utile de la demande champ ". $_POST et $_GET sont vides.

Comment le récupérer en PHP ?

246voto

Ikke Points 31517

Si je comprends bien la situation, vous ne faites que passer des données json à travers le corps du http, au lieu de application/x-www-form-urlencoded données.

Vous pouvez récupérer ces données avec cet extrait :

$request_body = file_get_contents('php://input');

Si vous passez du json, alors vous pouvez le faire :

$data = json_decode($request_body);

$data contient alors les données json dans un tableau php.

php://input est un soi-disant emballage .

php://input est un flux en lecture seule qui vous permet de lire des données brutes du corps de la requête. Dans le cas des requêtes POST, il est préférable d'utiliser d'utiliser php://input plutôt que $HTTP_RAW_POST_DATA car il ne dépend pas de directives car elle ne dépend pas de directives spéciales du php.ini. De plus, pour les cas où où $HTTP_RAW_POST_DATA n'est pas rempli par défaut, il s'agit d'une alternative moins gourmande en mémoire que l'activation de always_populate_raw_post_data. php://input n'est pas disponible avec enctype="multipart/form-data".

12voto

Molecular Man Points 15187

Vous pouvez également configurer extJs writer con encode: true et il enverra des données régulièrement (et, par conséquent, vous pourrez récupérer les données via $_POST y $_GET ).

... les valeurs seront envoyées dans le cadre des paramètres de la requête, par par opposition à un message brut (via docs pour encode config de Ext.data.writer.Json)

UPDATE

Aussi docs dire ça :

L'option encode ne doit être mise à true que lorsqu'une racine est définie.

Donc, probablement, writer 's root est nécessaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X