我如何过滤我的输入字段.. 例如传入的 $_POST、$_GETs 等..
我在 PDO 中使用准备好的语句,所以我只是将 $_POST 直接传输到 PDO(不再执行 mysql_real_escape_string)。
但是示例我将一个 $_POST var 传输到一个 $_SESSION 并且现在我直接这样做,但是我不应该以某种方式过滤它吗? PDO只是针对数据库的,那么“一般”呢?
最佳答案
也许你喜欢这个。不完美,但很好。
function clear($data)
{
$data = addslashes($data);
$data = strip_tags($data);
$data = mysql_real_escape_string($data);
$bir = array('/\//', '/\^/', '/\./', '/\$/', '/\|/', '/\(/', '/\)/', '/\[/', '/\]/',
'/\*/', '/\+/', '/\?/', '/\{/', '/\}/', '/\,/');
$iki = array('\/', '\^', '\.', '\$', '\|', '\(', '\)', '\[', '\]', '\*', '\+', '\?',
'\{', '\}', '\,');
$data = preg_replace($bir, $iki, $data);
return $data;
}
// USAGE
clear($_GET[]) or clear($_POST[])
此外,您必须使用 is_numeric、is_boolen、is_string 函数检查变量。
关于PHP:过滤我的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4661789/