Travailler avec des noms de champs de formulaire en double dans les requêtes POST
Lorsque vous travaillez avec des formulaires Web, il est courant de rencontrer des situations dans lesquelles plusieurs éléments d'entrée partagent le attribut du même nom. Cela pose la question : le tableau $_POST de PHP peut-il encore capturer efficacement les valeurs de tous ces champs ?
Comprendre le comportement de PHP
Pour répondre à cette question, il est crucial de comprendre comment PHP gère les données du formulaire. Lorsqu'un formulaire est soumis à l'aide de la méthode POST, PHP analyse le corps brut de la requête et remplit le tableau $_POST en fonction des paires nom-valeur soumises.
Le cas des noms en double
Dans le cas de noms de champs en double, PHP stockera uniquement la valeur du dernier élément d'entrée rencontré avec ce nom. Cela signifie que les valeurs de tous les champs précédents portant le même nom seront perdues.
Une solution : utiliser des tableaux
Pour atténuer ce problème et capturer les valeurs de tous champs en double, PHP propose une solution simple : attribuez l'attribut name entre crochets, comme "name='foo[]'". Cela demandera à PHP de traiter les champs de saisie comme un tableau, lui permettant de stocker plusieurs valeurs pour le même nom.
Par exemple, considérons le formulaire suivant :
<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>
Lorsque ce formulaire est soumis, le tableau $_POST contiendra une entrée "foo" avec un tableau des trois valeurs ("première valeur", "deuxième valeur" et "troisième value").
Accès au corps brut de la requête
Dans les scénarios où travailler avec un tableau ne suffit pas, PHP propose une méthode alternative : accéder au corps brut de la requête . Ceci peut être réalisé en utilisant la fonction file_get_contents('php://input'). En analysant le corps brut, vous pouvez extraire et traiter manuellement les valeurs de champ en double comme vous le souhaitez.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!