一部のユーザー入力をサニタイズします。
function html_mysql_sanitise($data) {
if(get_magic_quotes_gpc()) {
$data = stripslashes($data);
}
$data = htmlentities($data, ENT_QUOTES);
$data = htmlspecialchars($data, ENT_QUOTES);
return mysql_real_escape_string($data);
}
$_POST['data'] = html_mysql_sanitise($_POST['data']);
echo $_POST['data'];
echo html_entity_decode(htmlspecialchars_decode($_POST['data']));
echo html_entity_decode($_POST['data'], ENT_NOQUOTES);
echo htmlspecialchars_decode($_POST['data'], ENT_NOQUOTES);
$_POST['data'] が設定されています。
test<d#'!;ta>
これの出力は次のとおりです。
test<d#'!;ta>
test
test<d#'!;ta>
test<d#'!;ta>
最後の 2 つの結果が同じで、2 番目の結果が投稿されたデータの一部であるのはなぜですか? 最後の 2 つは目的の結果を生成しているように見えるので、どちらを使用すればよいですか?
ありがとうございました。