php表单发布问题

时间:2011-03-19 00:46:24

标签: php

foreach ($_POST as $key => $value) {
   $_POST[$key] = mysql_real_escape_string($value);
}
foreach ($_GET as $key => $value) {
   $_GET[$key] = mysql_real_escape_string($value);
}

大家好,

我使用上面的代码保护我的数据库以进行对象sql注入。但是当我为 Checkbox_IDS [] 形式的复选框定义“名称”时,不会发布值。我该如何解决这个问题?

谢谢你的帮助,现在已经。

1 个答案:

答案 0 :(得分:1)

Checkbox_IDS[]表示您遇到数组变量。在这种情况下,您应该使用array_walk_recursive来处理非平面结构。请查看http://www.php.net/manual/de/security.magicquotes.disabling.php#91653以获取类似示例。

在你的情况下,你会做同样的但具有适当的转义功能:

function mysql_real_escape_recursive(&$value)
{
    $value = mysql_real_escape_string($value);
}
array_walk_recursive($_POST, "mysql_real_escape_recursive");
array_walk_recursive($_GET, "mysql_real_escape_recursive");

请注意,单独引用所有内容就像它是字符串一样可能并不适用于所有情况。因为您肯定会将这些变量输出到HTML上下文中,这种无差别的SQL转义是一种障碍。