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 に答える