PHPでフォームを作る場合、INPUTやTEXTAREAを使いますが、そこから受け取る内容はエスケープする必要があります。受け取ったまま表示したり、DB登録なんかをしてしまうと、思わぬトラブルにみまわれることになります。
最低でも以下の4つはエスケープが必要。
& → &
< → < > → >
” → "
PHPでのエスケープ関数サンプル。
[php]// 入力値表示エスケープ
function invalueescape($str) {
$str = preg_replace(‘/&/’,’&’,$str);
$str = preg_replace(‘/</’,’<’,$str);
$str = preg_replace(‘/>/’,’>’,$str);
$str = preg_replace(‘/"/’,’"’,$str);
return $str;
}[/php]
POST送信などで受け取った値(仮に$post_val)をエスケープするには、上記のファンクションを記述したファイル内で、以下のようにします。
[php]$post_val = invalueescape($post_val);[/php]