Je construis une fonction qui va valider les valeurs dans un formulaire. Comment puis-je extraire le nom réel sous forme de chaîne à partir d'une variable $ _POST? Ex: $ _POST ['first_name'] = 'Joe'; Je veux maintenant saisir la chaîne 'first_name' et l'utiliser dans une fonction pour déclarer une variable de ce nom. Je sais que je peux utiliser une boucle foreach mais n'y a-t-il pas un moyen plus facile de faire cela?
Répondre
Pour autant que je compris, vous êtes à la recherche d'array_keys($_POST)
.
foreach($_POST as $key => $value) {
$$key = $value;
}
Je suggère d'utiliser le format '$ {$ key}' mais seulement pour améliorer la lisibilité. Thats entièrement une préférence personnelle cependant. –
"' extrait' place les variables dans la portée globale ": clair faux. Je ne comprends jamais où tu l'as eu. – ntd
Je ne suis pas sûr que ce soit ce que vous voulez, mais vous pouvez utiliser des variables variables comme ceci:
$fieldname = "first_name";
$fieldvalue = $_POST[$fieldname];
$$fieldname = $fieldvalue; // Creates a variable named "first_name"
echo $first_name; // Outputs the POST variable
Pas réellement .. Je voulais juste utiliser le texte 'first_name' comme valeur d'une nouvelle variable. Donc, si je faisais écho à $ fn cela ferait écho à 'first_name' – Rogelio
Je ne voudrais pas utiliser ceci:
foreach($_POST as $key => $value) {
$$key = $value;
}
... il ouvre votre code à la possibilité que quelqu'un place des vars malveillants dans votre programme via le formulaire. (c'est-à-dire, configurer efficacement globals_register sur)
Mais pour répondre à votre question de base: votre seule connaissance des variables affichées est ce qui est dans le tableau $ _POST; votre seul moyen de découvrir ce que sont les noms de variables est de faire une boucle dans les clés du tableau.
a) c'est ce qu'il a demandé, et b) c'est 'register_globals';) –
Euh, oui, register_globals. Et vous avez raison - en fait, permettez-moi d'affiner cela pour: assurez-vous de ne pas le faire dans une portée globale, et seulement dans une fonction. (ce qui est aussi ce que vous avez dit, mais cela mérite d'être souligné) – spinn
Je suis d'accord, les globals sont vraiment très mauvais. Mais c'est ce que le docteur a ordonné. –
Que diriez-vous
extract($_POST);
Ceci est la solution parfaite; il n'y a aucune raison de parcourir toutes les valeurs du tableau, quand il y a 'extract()' qui fait tout le travail. – kiamlaluno
Je suis d'accord avec ce qui précède et c'est la bonne réponse ... – Val
Si vous voulez exécuter la fonction basée sur le nom de la clé, votre meilleur coup serait quelque chose comme ceci:
foreach ($_POST AS $key => $value)
{
call_user_func("example_func_$key", $value);
}
Notez l'utilisation de $key
dans les guillemets du premier paramètre de call_user_func
. Cela vous permettra d'exécuter une fonction nommée "dynamiquement".
- 1. Imprimer le nom de la variable $ _POST avec la valeur
- 2. Comment imprimer un nom de variable et sa valeur sans taper deux fois le nom?
- 3. ajax comment lire _POST variable $
- 4. Vérifiez l'existence d'un attribut et non vide de sa valeur
- 5. Variable perdant sa valeur (SDK iPhone)
- 6. Récupère le nom de la propriété de sa valeur
- 7. Obtenir le nom de la variable Get
- 8. Extraire une valeur d'un nom * de param?
- 9. Concaténation chaque paramètre non vide et sa valeur
- 10. Énumérer tous les biens et sa valeur
- 11. ma variable semble être temporairement perdre sa valeur
- 12. Erreur implosant le tableau $ _POST [] contenant la variable php
- 13. $ _POST données non comme prévu
- 14. valeur sélectionnée par radiobuttonlist et sa validation
- 15. Obtenir le nom d'une variable en entrée et changer la variable avec ce nom
- 16. comment utiliser le nom variable balise image
- 17. Exclusion d'une variable lorsque sa valeur est vide
- 18. Comment utilisez-vous une variable dans un $ _POST []
- 19. Ajout d'une valeur d'une variable à un nom de variable?
- 20. Convertir variable à JSON Valeur Nom
- 21. utiliser une variable pour accéder à $ _POST
- 22. La variable non affectée a une valeur
- 23. Comment extraire le nom d'une variable dans une fonction appelée depuis une autre fonction dans R?
- 24. Transférer toute la variable $ _POST en popup
- 25. comment rendre $ _POST persistant?
- 26. Extraire le schéma et l'hôte de HTTP_REFERER
- 27. Extraire le nom de fichier de Dir()
- 28. Comment alerter un nom de variable, pas une valeur
- 29. comment extraire l'index/clé d'un tableau en utilisant sa valeur en PHP?
- 30. Comment lier la valeur à sa valeur d'élément parent?
"... déclare une variable sous ce nom" Ne faites pas cela. Il est susceptible de provoquer une vulnérabilité de sécurité - par ex. si quelqu'un publie une variable appelée _COOKIE ou _SERVER. C'est pourquoi l'option PHP.ini register_globals doit toujours être désactivée. – rjmunro