$_POST で重複した名前を持つフォーム フィールド値を取得する
同じ name 属性を共有する複数の入力要素を持つフォームを投稿すると、特定の動作が発生するPHP の $_POST での値のアクセシビリティに影響を与える問題が発生します。 array.
PHP の動作
通常、$_POST では、同じ名前の最後の入力要素に関連付けられた値のみにアクセスできます。これは、PHP が生のクエリ文字列を反復処理し、既存のキーと値のペアを重複した名前で上書きするために発生します。
解決策: 角かっこを使用する
複数の入力要素を許可するには同じ名前でそれらの値を $_POST に正しく保存するには、name="foo" の代わりに属性 name="foo[]" を使用します。このアプローチにより、各要素がそれぞれの入力要素からの値を格納する「foo」という名前の配列を含む $_POST が生成されます。
生のクエリ文字列へのアクセス
個別にアクセスする場合同じ名前のフィールドの値は重要です。代わりに、file_get_contents('php://input') を使用して生のクエリ文字列を取得することもできます。このプロセスにより、個々の値を手動で解析できます。
制限と利点
生のクエリ文字列にアクセスすることは解決策のように見えるかもしれませんが、制限があります。 PHP の $_POST の自動生成は、手動解析と比較して利便性とエラー防止を提供します。ただし、file_get_contents('php://input') を使用すると、特により複雑なフォーム構造を扱う場合に、より優れた制御と柔軟性が得られます。
以上がPHP の $_POST 配列内の重複した名前を持つフォーム フィールド値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。