Heim  >  Artikel  >  Backend-Entwicklung  >  Grund, warum PHP keine Postdaten empfangen kann

Grund, warum PHP keine Postdaten empfangen kann

(*-*)浩
(*-*)浩Original
2019-10-18 11:43:216351Durchsuche

Grund, warum PHP keine Postdaten empfangen kann

Überprüfen Sie, ob der Inhaltstyp der Header-Informationen „content-type:application/x-www-form-urlencoded“ ist. Bei dieser Übertragung werden Daten im PHP-Format übermittelt Verwenden Sie zum Akzeptieren die Methode $_POST. (Empfohlenes Lernen: PHP-Video-Tutorial)

Wenn der Inhaltstyp der Header-Informationen nicht „content-type:application/json“ ist, erfolgt die Übertragung in JSON Methode zum Übermitteln von Daten, PHP muss file_get_contents("php://input") verwenden, um den Eingabestream zu erhalten. Akzeptieren

Anfänger in PHP, verwenden Sie echo $_POST["variable"] und var_dump ($_POST) Beitragsdaten können nicht abgerufen werden.

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 Anweisungen mit Semikolons sind Kommentaranweisungen):

2. Beobachten Sie die Adresse Ihres Browsers, auf dem PHP ausgeführt wird. Sie werden feststellen, dass die Service-Portnummer, die zum Öffnen des Browsers in PhpStorm verwendet wird, 63342 ist ( URL ist localhost:63342/ (in dieser Form)

Der Grund für das Problem ist also: PhpStorm verwendet standardmäßig seinen eigenen internen Server, verwendet jedoch nicht den Apache-Server in xampp. Der integrierte Server von 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 platzieren und localhost in die Adressleiste eingeben, 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 Ich möchte immer noch von Öffnen Sie den Browser-Debugger in PhpStorm, was durch Ändern der Konfiguration erreicht werden kann:

(1) Ordnen Sie zuerst das Apache-Serververzeichnis dem lokalen Verzeichnis zu

Die Methode ist wie folgt:

1. Suchen Sie die Datei /xampp/apache/httpd.conf

2. Suchen Sie den Code 92aac8a5cc4b2dcfdd313b09f4c3c819 Block

3. Fügen Sie im 119b0749c0aa21aa8b28dbe7af1c5e2c hinzu, wie folgt:

<Directory "E:/phpworkspace/">
    AllowOverride All
    Options Indexes FollowSymLinks Includes ExecCGI
    Require all granted
</Directory>

Fertig. Starten Sie Apache neu, besuchen Sie: http://localhost/phpworkspace/ und fertig

(2) Suchen Sie dann in PHPStorm nach Datei-> Einstellungen->Erstellung, Bereitstellung->Bereitstellung, Es ist zunächst leer. Klicken Sie auf das grüne Pluszeichen, um einen lokalen Server hinzuzufügen. Wählen Sie nach der Erstellung einfach „In place“ aus Ist der Vorgang abgeschlossen, haben die Standardeinstellungen auf der Registerkarte „Verbindung“ auf der rechten Seite den Server auf Port 80 konfiguriert. Apache-Server unter http://localhost

, ändern Sie ihn in das Arbeitsverzeichnis, das Sie dem lokalen Projekt zugeordnet haben, und Legen Sie den lokalen Pfad unter dem Mappings-Tag auf das Verzeichnis Ihres lokalen Projekts fest.

Klicken Sie zu diesem Zeitpunkt auf den Browser von PhpStorm, und die aufgerufene URL enthält nicht mehr das Feld 63342-Port. Stattdessen wird der lokale Apache-Server verwendet und die entsprechenden Formulardaten können normal empfangen werden

Das obige ist der detaillierte Inhalt vonGrund, warum PHP keine Postdaten empfangen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist gut an PHP?Nächster Artikel:Was ist gut an PHP?