HTMLとテキストが混在するフォームフィールドがあります。ユーザーが基本的なHTMLと句読点を使用できるようにしたいと思います。
現在、mysql_real_escape_stringとpreg_replaceを使用してデータをサニタイズし、データベースに挿入しています。私の理解では、preg_replaceは、許可された文字のホワイトリストにない文字を削除する最良の方法であり、mysql_real_escape_stringはSQLインジェクションから保護します。
//How I collect and sanitise the data...
$var=mysql_real_escape_string(
preg_replace("/[^A-Za-z0-9-?!$#@()\"'.:;\\@,_ =\/<> ]/",'',$_POST['var'])
);
ただし、ハッシュ文字を使用すると壊れ続けます。
私の質問は次のとおりです。
1)これを行うためのより効率的な方法はありますか?
2)これが最善の方法である場合、私は何を間違っていますか?
許可する必要のある文字は次のとおりです。すべての英数字と:
?!@#$%&()-。、:; '"<> / + =
ありがとう!