如何保护多个选择框选项?

时间:2012-07-17 17:53:02

标签: php function drop-down-menu

您是否需要保护多个选择框,因为选项已经设置,而不是用户输入?

我使用此功能来保护常规输入:

function keepmesafe($input) 
 {
  if(get_magic_quotes_gpc() == true)
    {
     $input = stripslashes($input);
   }
   return htmlspecialchars($input);
}

但是当我在多个选择中使用它时,我会收到此警告:

  

警告:htmlspecialchars()要求参数1为字符串,数组   在...中给出。

我理解它需要一个字符串然后得到一个数组的警告,所以如果你确实需要确保我需要在当前函数中更改什么,或者是否有任何函数用于此?

1 个答案:

答案 0 :(得分:0)

就像警告所说,您正在向只接受字符串的函数发送数组。 您应该将单个字符串发送到函数htmlspecialchars,或者将函数修改为以下内容:

    function keepmesafe($input) 
    {
        if(is_array($input))
        {
            foreach($input as $key => $value) 
            {
                $input[$key] = keepmesafe($value); 
            }   
            return $input;
        }


        if(get_magic_quotes_gpc() == true)
        {
            $input = stripslashes($input);
        }

        return htmlspecialchars($input);
    }

您可以找到有关用户输入和安全性here的更多信息。