2

原谅我在这方面的无知..

我想我理解使用:

extract($_REQUEST);

在 php 文件中会将 html 表单输入转换为相应的变量。例如:

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

变成:

$author

是对的吗?

但是,我对如何处理多部分表单感到困惑。例如,一个有 1 个文件(一个图像)和两个文本输入。如何提取这些数据并将其放入变量中?

4

2 回答 2

4

如果 REGISTER GLOBALS 打开(不推荐),变量 $author 将自动可用。$_REQUEST 是一个超全局的持有 POST 和 GET 信息。

我建议您阅读有关 $_POST、$_GET 和 $_FILES 的信息

于 2010-11-13T12:57:10.050 回答
2

好的,再读一遍,你对extract的理解是对的。但请注意,author输入通常仍然可用$_REQUEST["author"]。通常避免将它们全部提取出来。

例如,如果您希望将该值用作表单输入,您可以编写:

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

如果你想有短名称,例如它有太多的字段并且它节省了大量的输入,那么我建议使用可选参数来提取():

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

这将生成一个$i_author变量,以及所有其他带有$i_前缀的输入字段。这被认为对其他(假设的)局部或全局变量的副作用较小。如果这有助于处理,您也可以array_map("htmlspecialchars",$_REQUEST)用于提取。


多部分表单数据将另外填充 $_FILES 数组,该数组具有不同的结构。见 PHP 手册http://php.net/manual/en/features.file-upload.php

于 2010-11-13T13:09:47.240 回答