2010-11-13 23 views
2

Pardonne mon ignorance dans ce ..données de formulaire multipart d'analyse syntaxique PHP

Je crois comprendre que l'utilisation:

extract($_REQUEST); 

dans un fichier php vous permet de convertir les entrées de formulaire HTML dans une variable correspondante. Par exemple:

<input type="text"name="author"/> 

devient:

$author 

Est-ce exact?

Cependant, je suis confus quant à la façon de gérer un formulaire en plusieurs parties. Par exemple un avec 1 fichier (une image) et deux entrées de texte. Comment puis-je extraire ces données et les mettre dans des variables?

+4

La variable $ author sera automatiquement disponible si REGISTER GLOBALS est activé (ce qui n'est pas recommandé). $ _REQUEST est un superglobal contenant des informations POST et GET. Je vous recommande de lire à propos de $ _POST, $ _GET et $ _FILES. – Andreas

+0

@andreas: votre commentaire mérite d'être une réponse – zerkms

+0

@zerkms: poster comme réponse alors :) – Andreas

Répondre

2

$ D'accord, après une autre lecture, votre undeerstanding d'extrait est exact. Mais notez que l'entrée author sera généralement disponible sous $_REQUEST["author"] de toute façon. Évitez généralement de les extraire tous.

Si par exemple vous souhaitez que la valeur soit réutilisé comme entrée de formulaire, vous pouvez écrire:

<input name="author" value="<?=htmlspecialchars($_REQUEST["author"])?>"> 

Si vous voulez avoir shortnames, si par exemple, il est trop de champs et il épargne beaucoup de dactylographie, puis Je vous recommande d'utiliser les paramètres optionnels pour extraire():

extract($_REQUEST, EXTR_PREFIX_ALL, "i_"); 

Cela générerait une variable $i_author, et tous les autres champs d'entrée avec un préfixe $i_. On pense que cela a moins d'effets secondaires avec d'autres variables (hyopthétiques) locales ou globales. Vous pouvez également utiliser array_map("htmlspecialchars",$_REQUEST) pour l'extraction, si cela facilite le traitement.


données de formulaires en plusieurs parties se remplissent le tableau $ _FILES en outre, qui a une structure différente. Voir le manuel PHP http://php.net/manual/en/features.file-upload.php

4

La variable $ author sera automatiquement disponible si REGISTER GLOBALS est activé (ce qui n'est pas recommandé). $ _REQUEST est un superglobal contenant des informations POST et GET.

Je vous recommande de lire à propos de $ _POST, $ _GET et _FILES