POST関数の活用
まずは、次のようなPHPを考えてみましょう。
post1.php
<form method="POST" action="post2.php">
名前:<br />
<input type="text name="name" size="15" /><br />
食べ物:<br />
<input type="checkbox name="food[]" value="mikan" />みかん
<input type="checkbox name="food[]" value="ringo" />りんご
<input type="checkbox name="food[]" value="banana" />ばなな
<input type="submit" value="送信します" />
</form>
上記のHTMLフォームで、名前を入力して好きな食べ物を入力してみてください。すると、あなたの名前と好きな食べ物が出力されるはずです。
post2.php
ソースは以下の通りです。
名前:<?php print($_POST['name']); ?>
<br>
好きな食べ物:<?php print_r($_POST['food']); ?>
表示結果については、post1.phpを使って確認してみてください。
$_POSTの中身は連想配列の形式となっているので、個々の要素値にアクセスするには、$_POST['要素名']のようにします。
また、チェックボックスやリストボックスのように同盟の要素が複数の値を持つ場合は、要素を名前[]のように指定しなければならないという点に注意が必要です。
これにより、$_POST['要素名']という配列から個々お値を取得することが可能となります。
なお、上記のソースにはセキュリティとして脆弱な部分があります。
<?php print($_POST['name']); ?>を
<?php print(htmlspecialchars($_POST['name'])); ?>
と変換することでこの脆弱性を回避することができます。理由は、上部のソースの場合、ユーザーが入力データに<script>などのタグを入力した場合、post2.phpを表示する際にそれがそのまま出力されます。
※そのため、post2.phpでは、下部のソースが実際にりようされています。htmlspecialcharsは文字列に含まれている<>や&などの予約文字を「<」などで置き換えるような命令になります。。
|