StripTags和MysqlRealEscape是一个使用PHP的数组

时间:2011-01-29 14:06:05

标签: php arrays strip-tags

我想从多个字段中删除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));
}

3 个答案:

答案 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);