我想从多个字段中删除HTML代码。所以我用过:
extract($_POST)
然后插入表格。
我不会剥离每个字段,如:
$user = strip_tags($user);
$email = strip_tags($email);
.....
有什么解决方法可以去除我的提取物($ _ POST)数组吗?
对于mysql_real_escape_string()
也是如此编辑1 我不会使用
foreach($_POST as $key => $value){ $_POST[$key] = mysql_real_escape_string(strip_tags($value)); }
我想使用短变量:
$name, $email
$_POST['name'] , $_POST['email']
不使用extract(),不推荐使用。
编辑2 解决方案是:
foreach($_POST as $key => $value){ $$key = mysql_real_escape_string(strip_tags($value)); }
答案 0 :(得分:2)
您可以使用array_map()
为给定数组的每个元素指定回调函数。
$_POST = array_map("strip_tags", $_POST
);
编辑:也许你应该指明你试图逃避用户输入的原因。例如,PHP具有特定的帮助,用于转义将添加到数据库的值以及将显示在页面上的值。前者可能导致SQL注入,后者则导致XSS漏洞。
答案 1 :(得分:2)
我想你想要这段代码
foreach($_POST as $key => $value){
$$key = strip_tags($value);
}
//The insertion here
insertion();
旧
foreach($_POST as $key => $value){
$_POST[$key] = strip_tags($value);
}
extract($_POST);
//The insertion here
insertion();
之后你有所有帖子字段strip_tagged
答案 2 :(得分:1)
使用PHP提供的filtering functions,特别是在这种情况下,您会对filter_input_array
感兴趣:
$filtered = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED);