


Que dois-je faire si la publication thinkphp5 ne parvient pas à obtenir la valeur ?
thinkphp5 post ne peut pas obtenir de valeur car TP5 utilise la fonction strpos pour trouver la chaîne app/json dans la valeur de type de contenu de l'en-tête. La solution consiste à définir la valeur de type de contenu de l'en-tête sur app/json.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ThinkPHP version 5, ordinateur Dell G3.
thinkphp5 Que dois-je faire si mon message ne reçoit aucune valeur ?
Solution au problème selon lequel ThinkPHP5 ne peut pas recevoir les paramètres Json transmis par le client Post
J'apprends le développement d'API pendant cette période, j'ai suivi un cours sur Internet et je l'ai suivi hier. encore une fois et tout le processus s'est déroulé sans problème. Je l'ai débogué pendant une demi-journée. Dans cette situation, le problème que j'ai rencontré était que lorsque j'utilisais Postman pour tester une certaine interface Post de l'API, quelle que soit la manière dont j'envoyais la demande, elle était toujours effectuée. m'a incité que la vérification des paramètres avait échoué. Pendant le processus de débogage, j'ai utilisé la méthode de transmission des paramètres via la table Body, et l'API a fonctionné comme par magie, j'ai donc jugé qu'il y avait un problème avec la transmission Json auparavant, alors j'ai cherché partout. Internet, mais il n'y avait pas de solution [mais j'ai obtenu deux points de connaissance et je les ai mis à la fin de l'article].
Concernant le problème de TP5, si ça ne marche pas, je ne peux vérifier que le code source, j'ai donc suivi l'erreur petit à petit et j'ai finalement découvert le problème~
Il s'avère que TP5 utilise la fonction strpos dans l'en-tête Recherchez la chaîne app/json dans la valeur de type de contenu de l'en-tête, ce qui signifie que vous devez définir la valeur de type de contenu de l'en-tête sur app/json, sinon TP5 ne pensera pas que vous transmettez un paramètre Json et donnez-le à Request::post Définissez la valeur sur vide.
Ce qui précède résout le problème selon lequel TP5 ne peut pas recevoir les paramètres Json transmis par le client Post.
Deux points de connaissance :
Les données php dont le type de contenu est "application/json" ne peuvent pas être directement reconnues, donc le tableau $_POST est vide. Solution : Nous devons uniquement utiliser $GLOBALS['HTTP_RAW_POST_DATA'] pour extraire les données d'origine, puis json_decode [En utilisant cette méthode, vous devez définir la valeur always_populate_raw_post_data dans php.ini sur On][$HTTP_RAW_POST_DATA, qui contient le données originales des données POST. Mais ce n'est pas une variable superglobale, pour l'utiliser dans une fonction, elle doit être déclarée global , ou utiliser $GLOBALS['HTTP_RAW_POST_DATA'] à la place. ];
Vous pouvez utiliser file_get_contents('php://input') au lieu de la méthode ci-dessus pour obtenir directement les paramètres Json entrants [Quand j'ai lu le code source de TP5, j'ai découvert qu'ils utilisaient également cette méthode pour obtenir la valeur initiale] .
Apprentissage recommandé : "Tutoriel vidéo thinkPHP"
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution à l'erreur signalée lors du déploiement de thinkphp5 dans Pagoda : 1. Ouvrez le serveur Pagoda, installez l'extension php pathinfo et activez-la ; 2. Configurez le fichier « .access » avec le contenu « RewriteRule ^(.*)$ index.php » ?s=/$1 [QSA ,PT,L]”; 3. Dans la gestion du site Web, activez simplement le pseudo-statique de thinkphp.

Solution pour que la réécriture d'URL thinkphp5 ne fonctionne pas : 1. Vérifiez si le module mod_rewrite.so est chargé dans le fichier de configuration httpd.conf ; 2. Remplacez None dans AllowOverride None par All ; (.*)$ index.php [L,E=PATH_INFO:$1]" et enregistrez-le.

Méthodes permettant à thinkphp5 d'obtenir l'URL demandée : 1. Utilisez la méthode "$request = Request::instance();" de la classe "\think\Request" pour obtenir les informations actuelles sur l'URL ; fonction "$request-> url()" pour obtenir l'adresse URL complète incluant le nom de domaine.

thinkphp5 post ne peut pas obtenir de valeur car TP5 utilise la fonction strpos pour trouver la chaîne app/json dans la valeur de type de contenu de l'en-tête. La solution consiste à définir la valeur de type de contenu de l'en-tête sur app/json.

Comment supprimer l'icône de la barre de titre thinkphp5 : 1. Recherchez le fichier favicon.ico sous le framework thinkphp5 public. 2. Supprimez le fichier ou choisissez une autre image pour le renommer en favicon.ico et remplacez le fichier favicon.ico d'origine.

Solution pour thinkphp5 indiquant que le contrôleur n'existe pas : 1. Vérifiez si l'espace de noms dans le contrôleur correspondant est écrit correctement et remplacez-le par le bon espace de noms ; 2. Ouvrez le fichier tp correspondant et modifiez le nom de la classe.

Comment interroger les données d'hier dans ThinkPHP5 : 1. Ouvrez les fichiers liés à ThinkPHP5 ; 2. Interrogez les données d'hier via l'expression "db('table')->whereTime('c_time', 'hier')->select();" .

Comment définir les invites d'erreur dans thinkphp5 : 1. Entrez le dossier public dans le répertoire racine du projet et ouvrez le fichier d'entrée index.php ; 2. Affichez les commentaires sur le commutateur de mode de débogage ; 3. Ajustez la valeur de la constante "APP_DEBUG" ; sur true pour afficher l'invite de message d'erreur.
