Erhalten von Formularfeldwerten mit doppelten Namen in $_POST
Beim Posten eines Formulars mit mehreren Eingabeelementen mit demselben Namensattribut treten bestimmte Verhaltensweisen auf entstehen, die die Zugänglichkeit ihrer Werte in PHPs $_POST beeinträchtigen Array.
PHP-Verhalten
Normalerweise sind in $_POST nur die Werte zugänglich, die dem letzten Eingabeelement mit demselben Namen zugeordnet sind. Dies geschieht, weil PHP die rohe Abfragezeichenfolge durchläuft und alle vorhandenen Schlüssel-Wert-Paare mit doppelten Namen überschreibt.
Lösung: Verwendung von eckigen Klammern
Um mehrere Eingabeelemente zuzulassen mit demselben Namen, um ihre Werte korrekt in $_POST zu speichern, verwenden Sie das Attribut name="foo[]" anstelle von name="foo". Dieser Ansatz führt dazu, dass $_POST ein Array mit dem Namen „foo“ enthält, in dem jedes Element einen Wert aus dem jeweiligen Eingabeelement speichert.
Zugriff auf Rohabfragezeichenfolge
Beim Zugriff auf einzelne Werte für Felder mit demselben Namen sind von entscheidender Bedeutung. Alternativ können Sie die rohe Abfragezeichenfolge mit file_get_contents('php://input') abrufen. Dieser Prozess ermöglicht es Ihnen, die einzelnen Werte manuell zu analysieren.
Einschränkungen und Vorteile
Der Zugriff auf die rohe Abfragezeichenfolge scheint zwar eine Lösung zu sein, bringt aber auch Einschränkungen mit sich. Die automatische Auffüllung von $_POST durch PHP bietet im Vergleich zur manuellen Analyse Komfort und Fehlervermeidung. Die Verwendung von file_get_contents('php://input') bietet jedoch mehr Kontrolle und Flexibilität, insbesondere beim Umgang mit komplexeren Formularstrukturen.
Das obige ist der detaillierte Inhalt vonWie kann ich auf Formularfeldwerte mit doppelten Namen im $_POST-Array von PHP zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!