Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn PHP keine Post-Parameter empfangen kann?
Lösung für PHP, das keine Post-Parameter empfangen kann: 1. Überprüfen Sie die Header-Informationen „content-type“ 2. Verwenden Sie die Methode [file_get_contents("php://input")], um den Eingabestream zu erhalten.
Empfohlen: „PHP-Video-Tutorial“
PHP-Schnittstellenbeitragsdaten können keine Parameter empfangen -form-urlencoded“ Bei dieser Art der Übertragung werden Daten in einem Formular übermittelt und PHP verwendet die Methode $_POST, um sie zu akzeptieren.
2. Wenn der Inhaltstyp der Header-Informationen „content-type:application/json“ ist, erfolgt die Übertragung im JSON-Modus und PHP muss file_get_contents(„php://input“) verwenden Erhalten Sie den Eingabestream. Akzeptieren 3. Ich bin neu bei PHP und kann die Post-Daten nicht mit echo $_POST["variable"] und var_dump($_POST) abrufen. Die Lösung lautet wie folgt: 1. Suchen Sie die Konfigurationsdatei php.ini, suchen Sie nach der Variablen „enable_post_data_reading“, stellen Sie sicher, dass sie geöffnet ist, und entfernen Sie das Semikolon vor der Anweisung (die Anweisung mit einem Semikolon ist ein Kommentar). Aussage): 2. Beobachten Sie die Adresse Ihres Browsers, auf dem PHP ausgeführt wird. Sie werden feststellen, dass die zum Öffnen des Browsers in PHPStorm verwendete Dienstportnummer 63342 ist (URL hat die Form „localhost:63342/“)Also die Ursache Das Problem besteht darin, dass PhpStorm den automatischen Server verwendet. Es verfügt über einen internen Server, verwendet jedoch nicht den Apache-Server in xampp. Der integrierte Server phpStorm verwendet Port 63342, und es liegt ein Problem innerhalb des Servers vor, das dazu führt, dass die POST-Methode abnormal ist. Wenn Sie das Projekt im Arbeitsverzeichnis des Apache-Servers ablegen und localhost in die Adressleiste eingeben, wird das Problem behoben Zu diesem Zeitpunkt wird der Apache-Server verwendet und die Standardportnummer ist 80. Der Apache-Server kann das Programm normal ausführen. Da es ein Problem mit dem internen Server von PhpStorm gibt, besteht die Lösung darin, einen Weg zu finden, den internen Server nicht zu verwenden. Es gibt zwei Methoden: 1. Erstellen Sie das Projekt im Arbeitsverzeichnis des Apache-Servers und geben Sie die Localhost-Adresse bei jeder Ausführung direkt in die Browser-Adressleiste ein 2. Wenn Sie das Programm dennoch debuggen möchten Der Browser von PhpStorm. Dies kann durch Ändern der Konfiguration erreicht werden: (1) Ordnen Sie zuerst das Apache-Serververzeichnis dem lokalen Verzeichnis zu Die Methode ist wie folgt: 1. Suchen Sie nach /xampp/apache/conf/. httpd.conf-Datei 2. Suchen Sie den Codeblock aea06d50f92706796e9cdcb702cef60f hinzu: Der Alias von Das Verzeichnis auf anderen Festplatten ist der Alias des Verzeichnisses, das Sie zuordnen möchten# „E:/phpworkspace/“ : Dies ist der absolute Pfad des Verzeichnisses Alias /phpworkspace/ „E:/phpworkspace/“
# Jetzt können Sie über //localhost/phpworkspace/ auf den phpworkspace-Ordner zugreifen 4. Fügen Sie einen Code auf derselben Ebene wie 1d2836e31d6e6e17d304ed49097f9974 hinzu:
<Directory "E:/phpworkspace/"> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI Require all granted </Directory>Jetzt abgeschlossen Starten Sie Apache neu und besuchen Sie: http://localhost/phpworkspace/ (2) Suchen Sie dann in PHPStorm nach Datei->Einstellungen->Erstellen, Ausführung, Bereitstellung->Bereitstellung. Klicken Sie zunächst auf das grüne Plus Unterzeichnen Sie, um einen lokalen Server hinzuzufügen und ihn als „localhost“ zu bezeichnen. Geben Sie Folgendes ein: Nachdem die Erstellung abgeschlossen ist, haben die Standardeinstellungen auf der Registerkarte „Verbindung“ rechts den Server als Apache-Server unter Port 80, also http, konfiguriert ://localhostÄndern Sie es in das, was Sie dem lokalen Projektverzeichnis zuordnen: Der lokale Pfad unter dem Mappings-Tag ist auf das Verzeichnis Ihres lokalen Projekts festgelegt: Klicken Sie zu diesem Zeitpunkt auf den Browser von PhpStorm und Die aufgerufene URL hat nicht mehr das Feld 63342 Port, sondern nutzt den lokalen Apache-Server, entsprechend können auch Formulardaten normal empfangen werden
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP keine Post-Parameter empfangen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!