Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich in PHP auf rohe Multipart-/Formulardaten-POST-Daten zugreifen?

Wie kann ich in PHP auf rohe Multipart-/Formulardaten-POST-Daten zugreifen?

DDD
Freigeben: 2024-11-25 01:38:14
Original
581 Leute haben es durchsucht

How Can I Access Raw Multipart/Form-Data POST Data in PHP?

Zugriff auf rohe Multipart-/Formulardaten-POST-Daten

In PHP ist das Standardverhalten für Multipart-/Formulardaten-POST-Anfragen für Eingabedaten werden automatisch von PHP analysiert. Dies stellt ein Problem dar, wenn Sie Zugriff auf die rohen, nicht geparsten Daten benötigen.

Während sowohl php://input als auch $HTTP_RAW_POST_DATA für den Zugriff auf POST-Rohdaten verwendet werden können, funktionieren beide nicht für mehrteilige/Formulardatenanfragen.

Problemumgehung

Leider konnten die Rohdaten nicht abgerufen werden Multipart-/Formulardatenformulare sind mit herkömmlichen PHP-Methoden nicht möglich. PHP besteht darauf, die Daten selbst zu analysieren, wodurch sie für die manuelle Analyse nicht verfügbar sind.

Es gibt jedoch eine Problemumgehung, bei der die Apache-Konfiguration geändert wird. Durch Hinzufügen des folgenden Snippets zu Ihrer Apache-Conf-Datei können Sie den Inhaltstyp eingehender Anfragen ändern:

<Location "/backend/XXX.php">
    SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE=
    RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE
</Location> 
Nach dem Login kopieren

Dadurch wird PHP gezwungen, die Multipart-/Formulardaten-Anfrage als Multipart-/Formulardaten-Anfrage zu behandeln -alternate, verhindert automatisches Parsen. Mit dieser Problemumgehung können Sie auf die Rohdaten zugreifen, indem Sie sie aus der php://-Eingabe lesen und manuell analysieren.

Einschränkungen

Diese Problemumgehung ermöglicht Ihnen zwar den Zugriff auf Da es sich um Rohdaten handelt, gibt es auch Einschränkungen. Insbesondere ist das Superglobal $_FILES leer, da PHP die Formulardaten nicht analysiert.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP auf rohe Multipart-/Formulardaten-POST-Daten zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage