0

SQLに保存される情報をユーザーに入力させています。もちろん、すべての引用符などをエスケープしたいのですが、そのようなものを最終的なhtmlに出力したくありません。

すべての $_POST 変数に対してこの関数を実行しています。有効ですか?

 function cleanArray($array)  //prevent funky insertions
{
foreach ($array as &$value)
{
    $value = mysql_real_escape_string(stripslashes(nl2br($value)));
}
return $array;  
}

エスケープ文字列とストリップスラッシュが互いに打ち消し合うのが心配ですか?

4

1 に答える 1

5

データベースに挿入する前に文字列データをエスケープするには、mysql_real_escape_string.

後で同じデータを HTML ページに出力するには、htmlspecialchars()HTML ソース コードをリテラル文字として表示するstrip_tags()場合、または HTML をサイレントに削除する場合に使用します。

魔法の引用符が有効になっている場合を除いて、他stripslashes()に何もする必要はありませんmysql_real_escape_string()。ただし、魔法の引用符は非推奨であり、オフにする方がはるかに優れています

于 2011-05-26T20:05:43.910 に答える