Récupérer les valeurs envoyé depuis une requete HTTP en PHP
Ferméavion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 2 nov. 2022 à 13:55
- Récupérer les valeurs envoyé depuis une requete HTTP en PHP
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Recuperer video youtube - Guide
- Protocole http - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
5 réponses
31 oct. 2022 à 13:26
bonjour,
quand tu écris "Je reçois bien mais donnée au format JSON", qui est "je"?
31 oct. 2022 à 13:40
Quelles sont les données que tu envoies au moment de faire le POST?
Merci de poster le texte de ton code au lieu d'images, comme expliqué ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
2 nov. 2022 à 09:42
Merci de poster le texte de ton code au lieu d'images, comme expliqué ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
2 nov. 2022 à 09:54
Et donc, maintenant, ça ne fonctionne toujours pas ?
Qu'as-tu dans ta console lorsque tu envoies une requête ? (Dans l'onglet requête, et dans l'onglet réponse)
Modifié le 2 nov. 2022 à 10:07
Rien n'a changé si je me trompe pas.
Onglet Requête:
Onglet Reponse:
add_api_account.php
$data = json_decode($_POST); var_dump($_POST);
31 oct. 2022 à 13:43
Bonjour
Le problème semble venir du code d'envoi et non le code php qui réceptionne les données..
À noter, que ton gison est incomplet.
Il faut indiquer le nom de la variable et sa valeur et pas juste envoyer des valeurs...
link:link , autrevar:autrevaleur ..
31 oct. 2022 à 19:56
Comme je te l'ai dit, le souci vient de l'envoi de tes données...
Au lieu de mettre
{titleAPi, linkApi, tokenAPi }
il faut utiliser le format :
{nomdelavariable: valeur, autrevariable: autrevaleur, etc... }
Donc, d'après le code que tu montres :
{titleAPi:titleAPi, linkApi:linkApi, tokenAPi:tokenAPi }
2 nov. 2022 à 09:33
Bonjour, j'ai modifier le code qui envoi les données dans le format que vous avez demander mais les données ne s'affiche pas quand je fais var_dump($_POST).
Le résultat de la requête dans la console:
2 nov. 2022 à 09:57
il faudrait nous montrer ce qui s'affiche dans l'onglet "reponse"
2 nov. 2022 à 10:08
Poste nous l'intégralité du code PHP
Vérifie, avant, que tes fichiers sont bien encodé en utf8 ( voir chapitre 1 de ce lien : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 )
service.ts :
/* Requete permettant d'ajouter un is */ addGitlabAccount(data: any): Observable<any> { const titleApi : string = data[0]; const linkApi : string = data[1]; const tokenApi : string = data[2]; let link = "http://localhost/developpement/gitlab/gitlab/php/script/gitlab-api/add_api_account.php"; return this.http.post<any>(link, {'linkApi': linkApi, 'titleApi': titleApi, 'tokenApi': tokenApi}, {responseType: 'json'}); }
add_api_account.php
/* Header du script */ header( 'content-type: application/json; charset=utf-8' ); header("Access-Control-Allow-Headers: *"); header("Access-Control-Allow-Origin: *"); $data = json_encode($_POST); var_dump($_POST);
2 nov. 2022 à 10:50
Tu peux essayer
$data = json_decode(file_get_contents('php://input'), true); var_dump($data );
Modifié le 2 nov. 2022 à 10:55
J'ai essayé cela et c’a fonctionne.
$datas = json_decode(file_get_contents('php://input')); $api_info = array('linkApi' => null, 'titleApi' => null, 'tokenApi' => null); foreach ($datas as $index => $data): $api_info[$index] = $data; endforeach; $api_title_post = $api_info['titleApi']; $api_link_post = $api_info['linkApi']; $api_token_post = $api_info['tokenApi'];
J'ai pas réussit à récupérer les informations directement via 'php://input' donc j'ai fait le foreach ( je pense pas que c’a soit la manière la plus prope )
2 nov. 2022 à 11:17
Tu n'as pas regardé ce que je t'ai donné visiblement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 2 nov. 2022 à 10:19
Bonjour,
Dans le cas habituel d'une requête POST :
POST /path/to/request HTTP/1.1 Host: example.com Content-TType: appplication/x-www-form-urlencoded field1=value1&field2=value2
(les fautes en ligne 3 sont volontaires, sinon CCM n'accepte pas...)
Les variables $_POST['field1'] et $_POST['field2'] sont alors définies.
Dans ton cas, le contenu soumis par la requête POST est de type application/json, il n'y a donc pas de mappage entre les clés JSON et la variable $_POST.
Tu peux lire le contenu de la requête POST (le JSON complet) via le chemin spécial php://input.
Voir https://www.php.net/manual/en/reserved.variables.post.php
2 nov. 2022 à 10:27
Chemin spécial: as-tu lu les explications données via le lien?
2 nov. 2022 à 10:29
Oui il n'avais pas partagé de lien dans un premier temps ( il a modifier le message ;) )
Merci.
Modifié le 2 nov. 2022 à 13:56
J'ai du modifier à plusieurs reprises afin de trouver pourquoi CCM n'acceptait pas ma réponse, je pensais que c'était le lien (risque de spam?) mais au final, c'est la partie "Content-Type" qui passe pas.
Tu peux obtenir le json via $json = file_get_contents('php://input');
Là c'est juste une chaine de caractères, après il faut le "parser" avec json_decode
D'ailleurs pourquoi CCM met "avec json_decode" en rouge, j'en sais rien, il n'est pas top leur éditeur "wysiwig" :/
31 oct. 2022 à 17:05
Dans la 3eme images dans l'onglet requête mais 3 données s'affiche en gros.
Ya de forte chance que je raconte des betises.