このページでは、簡単なformの作り方の続きを解説をしていきます。
前回作ったフォームに以下のように何か記入したとします。
さて、前回のコードに
<form method="POST" action="form_check.php">
と書いた通り、フォームに入力された内容はform_check.phpというファイルに届けられます。
そこで今回は、form_check.phpを作っていきましょう。
sendボタンを押すと下のようなページ(form_check.php)、つまり、自分が入力した内容をチェックできるページにアクセス出来るようにします。
<p>Please check!!</p> <?php $user_name = $_POST["user_name"]; $title_box = $_POST["title_box"]; $message_box = $_POST["message_box"]; ?> <form method=""POST" action="form_submit.php"> <table border="1"> <tr> <td>user name</td> <td><?php echo $user_name; ?></td> </tr> <tr> <td>title</td> <td><?php echo $title_box; ?></td> </tr> <tr> <td>message</td> <td><?php echo nl2br($message_box); ?></td> </tr> <tr> <td colspan="2"> <input type="submit" name="submit2" value="send"> </td> </tr> </table> </form>
なし
一番上で定義しているのは、phpのPOST関数です。
POST関数は、method="post"を持つフォームからの値を受取るために使用します。
$user_name = $_POST["user_name"]; $title_box = $_POST["title_box"]; $message_box = $_POST["message_box"];
の部分では、前のページのuser_nameとなずけられたフォームに記入された文字をPOSTから呼び出し、このページで、$user_name(左辺)と名付けています。
下のフォーム部分のactionでは、情報を更に次のページに渡しています。
<?php echo $user_name; ?>
は$user_nameに格納されている文字を呼び出しています。
またこのページでは、最も基本的な形でわかりやすくしようと考え、コードには反映しませんでしたが、このコードにはセキュリティに脆弱性があります。
フォームに悪意のあるSCRIPTを書き込まれてしまった場合、そのSCRIPTがこのページで実行されてしまうためです。
htmlspecialchars関数を使うか、文字数制限を掛けておくなどがよいでしょう。
例)<?php echo htmlspecialchars($user_name, ENT_QUOTES) ?>
とすると、HTMLタグなどは読み込まれなくなります。
フォーム入力完了ページの作り方に続きます。