前回で、フォーム入力ページがひとまず完成しました。
今回から、フォーム入力ページから送信されたデータを受け取って、入力内容を確認するページを作っていきましょう。
前回は、フォーム入力ページ(index.php)を作成しました。
ここからはフォーム入力ページから送信されたデータを受け取って、入力内容を確認するページ(confirm.php)を作っていきましょう。
これから作成していくconfirm.phpは、ユーザーの入力内容に不備が無いかどうかをチェックするページです。
おおまかに下記のような流れで一連の処理をします。
テキストエディタのメニューから[ファイル]→[新規作成]と選択して、新しいファイルを作成します。
[ファイル]→[名前を付けて保存]を選択して、「confirm.php」というファイル名で新規保存してください。
前回作成したindex.phpをコピーして、ファイル名を「confirm.php」と書き換えても良いでしょう。
いま作成したconfirm.phpに下記の内容を記述してください。
サンプルソース:confirm.php<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>入力内容の確認|メール送信フォーム</title> </head> <body> <?php echo $_POST["namae"]; ?> </body> </html>
入力が完了したら、confirm.phpを上書き保存してください。
前節で作成したindex.phpから、いま作成したconfirm.phpへのページ遷移をブラウザで確認してみましょう。
↓
送信ボタンを押した後の画面で、入力した名前が表示されていれば成功です。
何が起きたのか確認していきましょう。
データを送信するindex.php側では、下記のようにデータの送信先としてconfirm.phpを指定しています。
サンプルソース:confirm.phpの抜粋<form method="post" action="confirm.php">
フォームの送信ボタンを押すと、入力された内容がform要素のaction属性で指定したアドレスへ送信されます。
データを送信するindex.php側では、下記のようにデータにnamaeというデータ名を付けました。
サンプルソース:index.phpの抜粋<input type="text" maxlength="255" name="namae">
そして、データを受け取るconfirm.php側では、$_POST[“namae”] の部分で送信されたデータを受け取っています。
送信側と受信側のデータ名を同じにすることで、データの受け渡しが出来るのです。
サンプルソース:confirm.phpの抜粋echo $_POST["namae"];
echoは「指定した文字列を書き出しなさい」という命令です。
データを正しく受け取ったかどうかを確認するため、 $_POST[“namae”] に格納されたデータ内容をecho命令で画面表示させています。
index.phpでは、form要素のmethod属性にpostという値を指定しています。
サンプルソース:index.phpの抜粋<form method="post" action="confirm.php"> : : </form>
このmethod属性の値はデータの送信形式を指定しています。
メール送信フォームなどで比較的長いテキスト内容を送信する場合には、method=”post”を指定するのが一般的です。
method属性には、postの他にもgetなどの値が指定できます。
サンプルソース:getを指定した例<form method="get" action="search.php"> : : </form>
method=”get”は、
例えば、ページ番号や検索キーワードなどの比較的短めの値を送信する際に用いられることの多い送信形式です。
getは送信先URLの末尾にページ番号や検索キーワードなどのクエリがそのまま追加されるので、検索結果などを固定URLとして指定することができます。
今回利用したpostでは、送信内容がURLの末尾に付かないため、メール送信結果を固定URLで指定することはできません。
しかし、固定URLで指定できないことは、メール送信フォームの場合には悪いことではなく、むしろ二重投稿が起きにくくなるなどのメリットが得られます。
このように、フォームを作成する場合には、受け渡すデータの性質によってmethod属性の値を使い分けます。
<前へ | 目次へ | 次へ> |