有没有一种安全的方法来自动分配已发布数组中的键?以下是错误方法的两个示例...

foreach( $_POST as $key => $value ) {
     $$key = $value;
}

要么
extract($_POST)

有没有更好的方法,或者最好编码:
$foo = $_POST('foo');
$bar = $_POST('bar');
....

对于我表单上的所有 50 个输入?

(发布的信息将被插入到数据库中)。

最佳答案

一次提取所有输入字段的一种更谨慎的方法是:

extract( $_POST, EXTR_OVERWRITE, "form_" );

这样,您的所有输入变量将至少被称为 $form_foo$form_bar。避免在全局范围内这样做 - 不是因为全局是邪恶的,而是因为没有人会清理那里。

但是,由于大多数情况下您是在本地化范围内执行此操作,因此您也可以应用 htmlentities,例如,如果您需要所有字段仅用于输出:
extract(array_map("htmlspecialchars", $_POST), EXTR_OVERWRITE, "form_");

关于PHP:有没有安全的提取方法($_POST),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5306498/

10-14 17:58
查看更多