0

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

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

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

但是当我在多项选择上使用它时,我收到了这个警告:

警告:htmlspecialchars() 期望参数 1 是字符串,数组在 ...

我理解它需要一个字符串但得到一个数组的警告,所以如果你确实需要确保我需要在当前函数中更改什么或有任何人为此提供函数?

4

1 回答 1

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);
    }

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

于 2012-07-17T19:28:24.393 回答