在POST 請求中使用重複的表單欄位名稱
使用Web 表單時,經常會遇到多個輸入元素共用同名屬性。這就提出了一個問題:PHP 的 $_POST 陣列仍然可以有效地捕捉所有這些欄位的值嗎?
理解 PHP 的行為
要回答這個問題,理解這一點至關重要PHP 如何處理表單資料。當使用 POST 方法提交表單時,PHP 將解析原始請求正文並根據提交的名稱-值對填入 $_POST 陣列。
重複名稱的情況
如果欄位名稱重複,PHP 將只儲存最後遇到的具有該名稱的輸入元素的值。這意味著之前所有同名欄位的值都將遺失。
解決方案:使用數組
要緩解此問題並捕獲所有值對於重複字段,PHP 提供了一個簡單的解決方案:用方括號指定name 屬性,例如“name='foo[]'”。這將指示 PHP 將輸入欄位視為數組,從而允許它儲存同名的多個值。
例如,考慮以下形式:
當此形式提交後,$_POST陣列將包含一個條目“foo”,其中包含三個值(“第一個值”、“第二個值”和“第三個值”)的陣列
存取原始請求正文
在使用陣列無法滿足要求的情況下,PHP 提供了另一種方法:存取原始請求正文。這可以使用 file_get_contents('php://input') 函數來實作。透過解析原始正文,您可以根據需要手動提取和處理重複的欄位值。
以上是PHP 如何處理 POST 請求中重複的表單欄位名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!