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