Comment puis-je obtenir toutes les valeurs d'un formulaire en PHP et automatiquement les affecter à des variables?
Je suis en train de migrer un site web à partir d'un hôte à un autre. Sur le premier hôte, lorsque vous soumettez un formulaire, toutes les valeurs d'un formulaire sont automatiquement bloqués dans des variables avec le nom de l'entrée (c'est du PHP). Sur le nouvel hôte, ces valeurs sont toutes nulles sauf si je fais ceci:
$data = $_GET['data'];
Est-il une configuration PHP, qui en est la cause? Si il n'y en a pas, est-il un moyen facile de faire une boucle par tous les $_GET variables et automatiquement affecter leurs valeurs à une variable avec le même nom?
Merci!
La Config est
register_globals
, peut être simulé par extract($_GET);
. Mais vraiment, NE PAS le FAIRE. register_globals
était déconseillé pour de bon - il a de sérieux problèmes de sécurité. Au lieu de mieux réécrire votre code.OriginalL'auteur Dave | 2011-04-22
Vous devez vous connecter pour publier un commentaire.
Regardez l'extrait de la fonction : http://www.php.net/manual/en/function.extract.php
OriginalL'auteur Yoann
Le paramètre register_globals est, mais il est maintenant obsolète et fortement déconseillé de l'utiliser car c'est un risque pour la sécurité. N'importe qui peut définir des variables dans le script qui pourraient interagir dans un sens négatif ou de manière inattendue avec votre code.
Si vous devez absolument, vous pouvez le faire comme ceci:
ou, plus simplement:
ou, pour le rendre un peu plus sûr:
extract($_GET) pourraient aussi, en tant que quelqu'un d'autre a fait remarquer, et il permet également de spécification (par l'intermédiaire d'arguments supplémentaires) de l'ajout d'un préfixe ou que faire si votre extraction des conflits avec une variable (par exemple, si vous avez extrait après avoir défini quelques autres variables).
OriginalL'auteur Brett Zamir
Vous pourriez faire quelque chose comme ceci:
Le problème, c'est qu'il le rend facile pour les gens à jouer avec les variables dans votre script. J'ai pu visiter http://yoursite.com/?sql=DELETE+à PARTIR de...
Je vous le déconseille de faire cela et juste coller à l'aide de $_GET.
OriginalL'auteur robbrit
Votre question sous-entend tu ne fais pas de filtrage ou de validation lors de l'affectation de $_GET['data'] $de données, sauf si vous faites ce genre de vérifications plus bas dans votre script.
De ce que j'ai vu la plupart des programmeurs serait ce faire, dans un effort pour s'aperçoit rapidement si des données ne correspond pas aux attentes, de sorte que l'affectation ci-dessus dans le cas d'attendre un positif int deviendrait quelque chose comme:
Donc, voir tout simplement
qui me fait tiquer.
OriginalL'auteur Cups