Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mehrteilige/Formulardaten-POST-Anfragen in PHP analysieren, ohne integrierte Funktionen zu verwenden?

Wie kann ich mehrteilige/Formulardaten-POST-Anfragen in PHP analysieren, ohne integrierte Funktionen zu verwenden?

Mary-Kate Olsen
Freigeben: 2024-12-05 04:29:10
Original
377 Leute haben es durchsucht

How Can I Parse Multipart/Form-Data POST Requests in PHP Without Using Built-in Functions?

Parsen von Multipart-/Formulardaten-POST-Anfragen ohne Eingreifen von PHP

Trotz der Einschränkungen von php://input und $HTTP_RAW_POST_DATA bei der Verarbeitung von Multipart /form-data POST-Anfragen, gibt es eine Möglichkeit, auf die Rohdaten zuzugreifen direkt.

Die Herausforderung des Parsens von RAW-Multipart-/Formulardaten

PHP analysiert Multipart-/Formulardatenanforderungen automatisch, sodass es unmöglich ist, die Rohdaten direkt zu erhalten. Dies kann ein Problem sein, wenn es um falsch formatierte Daten geht, die PHP nicht analysieren kann.

Die Einschränkung umgehen

Die Lösung liegt in der Änderung des Anforderungsheaders mithilfe einer Apache-Konfiguration Richtlinie. Durch die Änderung des Inhaltstyps von multipart/form-data in multipart/form-data-alternate wird PHP dazu verleitet, die Anfrage nicht zu analysieren.

Apache-Konfigurationsänderung

Der folgende Code kann zur Apache-Konfiguration hinzugefügt werden:

<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

Diese Direktive ändert den Content-Type-Header eingehender Anfragen in /backend/XXX.php von multipart/form-data zu multipart/form-data-alternate, wodurch PHP daran gehindert wird, die Anfrage zu analysieren.

Rohdaten abrufen und analysieren

Nachdem die Konfiguration geändert wurde, können die Rohdaten von php://input abgerufen und manuell analysiert werden. Allerdings hat diese Methode eine Einschränkung: Das $_FILES-Array ist leer.

Diese Problemumgehung ist nicht ideal, bietet aber eine Lösung für Situationen, in denen die standardmäßige PHP-Analyse fehlschlägt.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrteilige/Formulardaten-POST-Anfragen in PHP analysieren, ohne integrierte Funktionen zu verwenden?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage