您是否需要保护多个选择框,因为选项已经设置,而不是用户输入?
我使用此功能来保护常规输入:
function keepmesafe($input)
{
if(get_magic_quotes_gpc() == true)
{
$input = stripslashes($input);
}
return htmlspecialchars($input);
}
但是当我在多个选择中使用它时,我会收到此警告:
警告:htmlspecialchars()要求参数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的更多信息。