ホームページ >バックエンド開発 >PHPチュートリアル >PHP の `$_POST` 配列は同じ名前の複数のフォーム フィールドを処理できますか?

PHP の `$_POST` 配列は同じ名前の複数のフォーム フィールドを処理できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 19:48:121067ブラウズ

Can PHP's `$_POST` Array Handle Multiple Form Fields with the Same Name?

重複した名前属性を持つフォームフィールドの送信

質問:

次の内容を含むフォームを送信する場合同じ name 属性を持つ複数のテキスト入力フィールドがあっても、すべてのフィールド値をPHP の $_POST 配列?

答え:

いいえ、同じ名前を持つ最後の入力要素の値のみが $_POST 配列に保存されます。

理由:

PHP は$_POST 配列を作成するには、生のクエリ文字列を個々の名前と値のペアに分解します。同じ名前を持つ複数の名前と値のペアが見つかった場合、前の値を新しい値で上書きします。

代替:

同じ名前で複数の入力を処理するにはname:

  • 配列構文を追加した name 属性を使用します (例: name="foo[]").
  • $rawQueryString = file_get_contents('php://input') を使用して生のクエリ文字列に直接アクセスします。

未加工のクエリ文字列:

未加工のクエリ文字列を使用する場合は、次のようなスクリプト:

$post = array();
foreach (explode('&', file_get_contents('php://input')) as $keyValuePair) {
    list($key, $value) = explode('=', $keyValuePair);
    $post[$key][] = $value;
}

以上がPHP の `$_POST` 配列は同じ名前の複数のフォーム フィールドを処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。