Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn PHP keine Formulardaten empfangen kann?

Was soll ich tun, wenn PHP keine Formulardaten empfangen kann?

PHPz
PHPzOriginal
2023-04-04 16:13:071215Durchsuche

PHP ist eine weit verbreitete Skriptsprache, die häufig für die serverseitige Programmierung verwendet wird. Die Verarbeitung der von Benutzern übermittelten Formulardaten kann einfach mit PHP implementiert werden. Manchmal stoßen wir jedoch auf ein solches Problem: Die im Formular im FormData-Format übermittelten Daten können nicht im PHP-Code empfangen werden. Wie kann man dieses Problem lösen?

Zunächst müssen wir die Formularübermittlungsmethode im FormData-Format verstehen. FormData ist eine neue API zum Erstellen von Formulardaten, die Formulare verarbeiten kann, die komplexe Datentypen wie Text, Dateien, Binärdaten usw. enthalten. Wenn Sie FormData zum Senden von Formulardaten verwenden, müssen Sie die POST-Methode verwenden.

Zum Beispiel können wir den folgenden Code verwenden, um ein FormData-Objekt zu erstellen, das Text und Dateien enthält:

var formData = new FormData();
formData.append('name', 'Bob');
formData.append('file', fileInput.files[0]);

Wobei „Name“ der Name des Formularelements ist, „Bob“ sein Wert; „Datei“ ist die Datei Upload-Steuername, fileInput.files[0] sind die Daten der Datei. Sie können das XMLHttpRequest-Objekt verwenden, um ein FormData-Objekt an den Server zu senden, bevor das Formular gesendet wird.

In PHP ist es normalerweise kein Problem, das $_POST-Array zu verwenden, um von einem Formular übermittelte Daten zu empfangen. Wenn das Formular jedoch das FormData-Format zum Senden von Daten verwendet, müssen Sie das Array $_FILES verwenden, um die Daten zu empfangen. Das Array $_FILES enthält Informationen zu hochgeladenen Dateien.

Zum Beispiel können wir den folgenden Code verwenden, um die von FormData in PHP übermittelten Daten zu empfangen:

$name = $_POST['name'];
$file = $_FILES['file'];

Darunter ist $name der Wert des Formularelements „name“; $file ist die Information der hochgeladenen Datei.

Wenn das Problem besteht, dass FormData nicht empfangen wird, können Sie die folgenden Lösungen ausprobieren:

  1. Überprüfen Sie die Anforderungsheader: Verwenden Sie Tools wie Fiddler oder Chrome Devtools, um die vom Formular übermittelten Anforderungsheader zu überprüfen und sicherzustellen, dass der Inhaltstyp vorliegt ist auf „multipart/form-data“ eingestellt.
  2. PHP-Konfiguration: Überprüfen Sie die PHP-Konfigurationsdatei, um sicherzustellen, dass Konfigurationselemente wie file_uploads und post_max_size korrekt eingestellt sind.
  3. Grenze für die Upload-Dateigröße: Überprüfen Sie, ob die Upload-Dateigröße die in der PHP-Konfigurationsdatei festgelegte Grenzwertgröße überschreitet.
  4. Datei-Upload-Pfad: Überprüfen Sie, ob der Speicherpfad der hochgeladenen Datei korrekt eingestellt ist.

Zusammenfassung:

Um von FormData in PHP übermittelte Daten zu empfangen, müssen Sie das Array $_FILES anstelle des Arrays $_POST verwenden. Wenn das Problem besteht, dass FormData nicht empfangen wird, müssen Sie den Formularanforderungsheader, die PHP-Konfiguration, die Größenbeschränkung für Upload-Dateien, den Datei-Upload-Pfad und andere Einstellungen überprüfen.

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP keine Formulardaten 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