Heim >Backend-Entwicklung >PHP-Tutorial >Wie geht PHP mit doppelten Formularfeldnamen in POST-Anfragen um?

Wie geht PHP mit doppelten Formularfeldnamen in POST-Anfragen um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 13:44:14512Durchsuche

How Does PHP Handle Duplicate Form Field Names in POST Requests?

Arbeiten mit doppelten Formularfeldnamen in POST-Anfragen

Bei der Arbeit mit Webformularen kommt es häufig zu Situationen, in denen mehrere Eingabeelemente die gleichen gleichnamiges Attribut. Dies wirft die Frage auf: Kann das $_POST-Array von PHP die Werte all dieser Felder immer noch effektiv erfassen?

Das Verhalten von PHP verstehen

Um diese Frage zu beantworten, ist es wichtig zu verstehen wie PHP mit Formulardaten umgeht. Wenn ein Formular mit der POST-Methode übermittelt wird, analysiert PHP den rohen Anforderungstext und füllt das Array $_POST basierend auf den übermittelten Name-Wert-Paaren.

Der Fall doppelter Namen

Im Falle doppelter Feldnamen speichert PHP nur den Wert des zuletzt gefundenen Eingabeelements mit diesem Namen. Dies bedeutet, dass die Werte aller vorherigen Felder mit demselben Namen verloren gehen.

Eine Lösung: Verwendung von Arrays

Um dieses Problem zu mildern und die Werte aller zu erfassen Bei doppelten Feldern bietet PHP eine einfache Lösung: Weisen Sie das Namensattribut mit eckigen Klammern zu, z. B. „name='foo[]'“. Dadurch wird PHP angewiesen, die Eingabefelder als Array zu behandeln, sodass mehrere Werte für denselben Namen gespeichert werden können.

Betrachten Sie beispielsweise das folgende Formular:

<form method="post">
    <input name="foo[]" value="first value">
    <input name="foo[]" value="second value">
    <input name="foo[]" value="third value">
    <input type="submit">
</form>

Bei diesem Formular gesendet wird, enthält das $_POST-Array einen Eintrag „foo“ mit einem Array der drei Werte („erster Wert“, „zweiter Wert“ und „dritter“) value").

Zugriff auf den rohen Anforderungstext

In Szenarien, in denen die Arbeit mit einem Array nicht ausreicht, bietet PHP eine alternative Methode: Zugriff auf den rohen Anforderungstext . Dies kann mit der Funktion file_get_contents('php://input') erreicht werden. Durch das Parsen des Rohkörpers können Sie die doppelten Feldwerte nach Bedarf manuell extrahieren und verarbeiten.

Das obige ist der detaillierte Inhalt vonWie geht PHP mit doppelten Formularfeldnamen in POST-Anfragen um?. 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