


Was soll ich tun, wenn thinkphp5 post den Wert nicht abrufen kann?
thinkphp5-Beitrag kann keinen Wert erhalten, da TP5 die strpos-Funktion verwendet, um die app/json-Zeichenfolge im Inhaltstypwert des Headers zu finden. Die Lösung besteht darin, den Inhaltstypwert des Headers auf app/json zu setzen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, ThinkPHP Version 5, Dell G3-Computer.
thinkphp5 Was soll ich tun, wenn mein Beitrag keinen Wert erhält?
Lösung für das Problem, dass ThinkPHP5 die vom Client übergebenen Json-Parameter nicht empfangen kann. Ich habe in dieser Zeit einen Kurs aus dem Internet besucht und ihn besucht Noch einmal Dozent und der gesamte Prozess verlief reibungslos. In dieser Situation war das Problem, dass ich beim Testen einer bestimmten Post-Schnittstelle der API auftrat, unabhängig davon, wie ich die Anfrage gesendet habe Ich wurde immer darauf hingewiesen, dass die Parameterüberprüfung fehlgeschlagen ist. Ich habe die Methode zum Übergeben von Parametern über die Body-Tabelle und die API auf magische Weise verwendet. Es hat funktioniert, also habe ich zuvor festgestellt, dass es ein Problem mit der Json-Übertragung gab, also habe ich alle durchsucht über das Internet, aber es gab keine Lösung [aber ich habe zwei Wissenspunkte erhalten und sie am Ende des Artikels platziert].
Was das Problem von TP5 betrifft: Wenn es nicht funktioniert, kann ich nur den Quellcode überprüfen, also habe ich den Fehler Stück für Stück verfolgt und schließlich das Problem entdeckt ~Es stellt sich heraus, dass TP5 die strpos-Funktion verwendet Suchen Sie im Header nach der Zeichenfolge „app/json“ im Inhaltstypwert des Headers. Dies bedeutet, dass Sie den Inhaltstypwert des Headers auf „app/json“ festlegen müssen, da TP5 sonst nicht davon ausgeht, dass Sie einen Json-Parameter übergeben Geben Sie es an Request::post. Setzen Sie den Wert auf leer.
Zwei Wissenspunkte: Der Daten-PHP, dessen Inhaltstyp „application/json“ ist, kann nicht direkt erkannt werden, daher ist das $_POST-Array leer. Lösung: Wir müssen nur $GLOBALS['HTTP_RAW_POST_DATA'] verwenden, um die Originaldaten herauszunehmen, und sie dann mit json_dekodieren. [Mit dieser Methode müssen Sie den Wert „always_populate_raw_post_data“ in php.ini auf „On“ setzen die Originaldaten der POST-Daten. Dies ist jedoch keine superglobale Variable. Um sie in einer Funktion zu verwenden, muss sie als global deklariert werden oder stattdessen $GLOBALS['HTTP_RAW_POST_DATA'] verwendet werden. ];Das Obige löst das Problem, dass TP5 die vom Client Post übergebenen Json-Parameter nicht empfangen kann.
- Sie können file_get_contents('php://input') anstelle der oben genannten Methode verwenden, um die eingehenden Json-Parameter direkt abzurufen [Als ich den TP5-Quellcode las, stellte ich fest, dass sie diese Methode auch zum Abrufen verwenden der Anfangswert] .
- Empfohlenes Lernen: „ thinkPHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn thinkphp5 post den Wert nicht abrufen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lösung für den bei der Bereitstellung von thinkphp5 in Pagoda gemeldeten Fehler: 1. Öffnen Sie den Pagoda-Server, installieren Sie die PHP-Pathinfo-Erweiterung und aktivieren Sie sie. 2. Konfigurieren Sie die Datei „.access“ mit dem Inhalt „RewriteRule ^(.*)$ index.php ?s=/$1 [QSA ,PT,L]“; 3. Aktivieren Sie in der Website-Verwaltung einfach die Pseudostatik von thinkphp.

Lösung dafür, dass das Umschreiben von thinkphp5-URLs nicht funktioniert: 1. Überprüfen Sie, ob das Modul mod_rewrite.so in der Konfigurationsdatei httpd.conf geladen ist. 2. Ändern Sie None in AllowOverride None in All. 3. Ändern Sie die Apache-Konfigurationsdatei .htaccess in „RewriteRule ^“. (.*)$ index.php [L,E=PATH_INFO:$1]“ und speichern Sie es.

Methoden für thinkphp5 zum Abrufen der angeforderten URL: 1. Verwenden Sie die Methode „$request = Request::instance();“ der Klasse „\think\Request“, um die aktuellen URL-Informationen abzurufen Funktion „$request->url()“, um die vollständige URL-Adresse einschließlich des Domainnamens zu erhalten.

thinkphp5-Beitrag kann keinen Wert abrufen, da TP5 die strpos-Funktion verwendet, um den app/json-String im Inhaltstypwert des Headers zu finden. Die Lösung besteht darin, den Inhaltstypwert des Headers auf app/json zu setzen.

So entfernen Sie das thinkphp5-Titelleistensymbol: 1. Suchen Sie die Datei favicon.ico unter dem öffentlichen thinkphp5-Framework. 2. Löschen Sie die Datei oder wählen Sie ein anderes Bild aus, um sie in favicon.ico umzubenennen und die ursprüngliche Datei favicon.ico zu ersetzen.

Lösung für die Meldung thinkphp5, dass der Controller nicht existiert: 1. Überprüfen Sie, ob der Namespace im entsprechenden Controller korrekt geschrieben ist, und ändern Sie ihn in den richtigen Namespace. 2. Öffnen Sie die entsprechende tp-Datei und ändern Sie den Klassennamen.

So fragen Sie die Daten von gestern in ThinkPHP5 ab: 1. Öffnen Sie ThinkPHP5-bezogene Dateien. 2. Fragen Sie die Daten von gestern über den Ausdruck „db('table')->whereTime('c_time', 'yesterday')->select();“ ab .

So legen Sie Fehleraufforderungen in thinkphp5 fest: 1. Geben Sie den öffentlichen Ordner im Projektstammverzeichnis ein und öffnen Sie die Eintragsdatei index.php. 2. Sehen Sie sich die Kommentare zum Debug-Modus-Schalter an. 3. Passen Sie den Wert der Konstante „APP_DEBUG“ an auf „true“ setzen, um eine Fehlermeldung anzuzeigen.
