您是否需要确保多个选择框的安全,因为已经设置了选项而不是用户输入?
我使用这个功能来确保定期输入:
function keepmesafe($input)
{
if(get_magic_quotes_gpc() == true)
{
$input = stripslashes($input);
}
return htmlspecialchars($input);
}
但当我在多选中使用它时,我会收到以下警告:
警告:htmlspecialchar()要求参数1为字符串、数组在…中给定。。。
我理解这个警告,它需要一个字符串,但得到一个数组,所以如果你确实需要确保我需要在当前函数中更改什么,或者让任何人都有这样的函数?
正如警告所说,您正在向只接受字符串的函数发送数组。您应该向函数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);
}
你可以在这里找到更多关于用户输入和安全的信息。