フォームのデータを受け取りエスケープして変数に入れる

フォーム(form)からデータを受け取る場合、一般的に$_POST['name']といった形でうけとります。
$name = $_POST['name'];といった形で使うケースもあるでしょう。
ただ、問題なのは$_POST['name']に悪意有るタグが含まれる場合もあり、そのまま使っているプログラマーはあり得ないほどセキュリティに興味がない人となります。
そこで、単純ですが使いやすい形で受け取りの形を作ってみました。
$name = $_POST['name'];といった形で使うケースもあるでしょう。
ただ、問題なのは$_POST['name']に悪意有るタグが含まれる場合もあり、そのまま使っているプログラマーはあり得ないほどセキュリティに興味がない人となります。
そこで、単純ですが使いやすい形で受け取りの形を作ってみました。
//POSTデータを全て受け取りエスケープして変数に入れる
foreach($_POST as $k => $v) {
if(get_magic_quotes_gpc()) {
$v=stripslashes($v);
}
$v=htmlspecialchars($v);
$array[$k]=$v;
}
extract($array);
例えば次のようなフォームからデータが送られてきた場合
<form name="form1" method="post" action="index.php">
<input type="text" name="namae">
<input type="text" name="tel">
<textarea name="coment"></textarea>
</form>
name=namaeとname=telとname=comentとあります。
この場合は上のPHPを実行すると
しかもフォームの数が多くても、上記PHPを表示するだけで、全てタグを無効にして、さらに全て変数に自動的にいれてくれる便利物です。
スポンサードリンク
| フォームデータ加工 | comments:2 | trackbacks:0 | TOP↑
参考になりました
大変参考になりました。ありがとうございます。
TBさせていただきますね。
| muzin | 2007/03/27 19:51 | URL | ≫ EDIT