PHPstep

トップページ > PHPでメール送信フォームを作ろう >

第二章 PHPでウェブアプリケーションを作ろう

PHPでメール送信フォームを作ろう3

「PHPでメール送信フォームを作ろう」の第3回です。 前回までに、フォーム入力ページから送信されたデータを受け取るところまで作成しました。 今回は、前のページから受け取った内容を変数に格納してから画面表示します。
※最終完成形はこちら→メール送信フォームサンプル

いったん変数に代入してから画面表示する

前回は、送られてきたデータを$_POST["namae"]の書式で受け取ったまま画面表示しました。 データは変数に代入するとプログラムで扱いやすくなります。 そこで今回は、受け取ったデータをいったん変数に代入してから、画面表示するように変更してみましょう。

前回作成したconfirm.phpを開いて、下記のように書き換えてください。

サンプルソース:confirm.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>入力内容の確認|メール送信フォーム</title> </head> <body> <?php /* データの受け取り */ $namae = $_POST["namae"]; //お名前 $mailaddress = $_POST["mailaddress"]; //メールアドレス $naiyou = $_POST["naiyou"]; //お問合せ内容 /* 入力内容の確認 */ echo '<h3>入力内容を確認します</h3>'; echo '<dl>'; echo '<dt>【お名前】</dt><dd>'.$namae.'</dd>'; echo '<dt>【メールアドレス】</dt><dd>'.$mailaddress.'</dd>'; echo '<dt>【お問合せ内容】</dt><dd>'.$naiyou.'</dd>'; echo '</dl>'; ?> </body> </html>

入力が完了したら、confirm.phpを上書き保存してください。

ブラウザで表示確認してみよう

いま上書き保存したconfirm.phpをブラウザで表示確認してみましょう。

XAMPPによる動作確認手順
  1. ブラウザのアドレス欄に http://localhost/sample/mailform/ と入力して、フォーム入力ページを表示させます。
  2. フォーム入力欄に何か適当に入力して、[入力内容を確認する]ボタンを押します。

フォーム入力ページ(index.php)で入力したデータが、入力内容確認ページ(confirm.php)で表示されれば成功です。



記述したソース内容を確認しよう

受け取ったデータを変数に代入する

データの受け取り部分のソースに注目してみましょう。

サンプルソース:confirm.phpの抜粋
/* データの受け取り */ $namae = $_POST["namae"]; //お名前 $mailaddress = $_POST["mailaddress"]; //メールアドレス $naiyou = $_POST["naiyou"]; //お問合せ内容

上記のソースでは、前のページから$_POSTで受け取ったお名前・メールアドレス・お問合せ内容という3つのデータを、 $namae・$mailaddress・$naiyouという3つの変数にそれぞれ格納しています。

変数とは先頭に$をつけた半角英数の文字列で、数値やテキストなどのデータを格納する際に使用します。 変数にデータを代入する際には、変数名とデータ内容を =(イコール)で結びます。 例えば、 $namae = $_POST["namae"] という具合に受け取ったデータを=(イコール)で結んで代入します。

変数に代入されているデータの内容を画面に表示する

入力内容の確認部分のソースでは、変数に代入されているデータの内容をecho命令で書き出しています。

サンプルソース:confirm.phpの抜粋
/* 入力内容の確認 */ echo '<h3>入力内容を確認します</h3>'; echo '<dl>'; echo '<dt>【お名前】</dt><dd>'.$namae.'</dd>'; echo '<dt>【メールアドレス】</dt><dd>'.$mailaddress.'</dd>'; echo '<dt>【お問合せ内容】</dt><dd>'.$naiyou.'</dd>'; echo '</dl>';

PHPで上記のecho命令が実行されると、下記のようなHTMLソースが吐き出されます。

吐き出されたHTMLソース:confirm.phpの抜粋
<h3>入力内容を確認します</h3><dl><dt>【お名前】</dt><dd>山田太郎</dd><dt>【メールアドレス】</dt><dd>yamada@example.com</dd><dt>【お問合せ内容】</dt><dd>はじめまして。 御社の商品について質問いたします。</dd></dl>

HTMLソース

PHPから吐き出されたHTMLソースは、インターネットを経由してユーザーのパソコンやスマートフォンに返されます。 そして、ユーザーの利用しているInternet ExplorerやChromeやSafariなどのブラウザがHTMLソースを解釈して、 下記のようにブラウザ画面にテキストが表示されます。

変数に置き換えると操作しやすくなる

今回は、フォーム入力ページ(index.php)から受け取ったデータを、 表示確認ページ(confirm.php)側でいったん変数に格納してから画面表示するように変更しました。

ユーザーの入力内容を画面表示するという最終的な結果自体は前回までと同じですから、 今回のプログラム変更には意味が無いようにも思えます。 前のページから受け取ったデータを画面に表示するだけなら、 変数を使用せずに$_POST["namae"]をそのまま表示しておけば良いのかもしれません。

しかし、前のページからデータを受け取る場合にはいったん変数に代入するのが一般的です。 その理由は、いったん変数に置き換えることで様々な場面でプログラム操作がしやすくなるからです。 いま作成しているくらいの簡単なプログラムではあまり違いを感じませんが、 プログラムが複雑になるにつれてだんだん変数の便利さを実感できるようになってきます。

コラム「ソース中にコメントを入れておく」

PHPのプログラムは適宜コメントを入れながら作成します。 コメントとは、プログラムなどのソース中に記しておくメモのことです。 コメントはプログラムには影響しません。

コメントはプログラムには影響しませんから記述しなくても問題ありませんが、 記述しておくと後からプログラムソースを見直した際に内容を理解しやすくなります。

PHPソース中にコメントを入れる際には、コメント文の先頭に // あるいは # を付けます。 コメントが複数行になる場合には、各行の先頭に // あるいは # を付ける必要がありますが、 /* ~ */ で囲むとその範囲はすべてコメントとなります。

サンプルソース:confirm.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>入力内容の確認|メール送信フォーム</title> </head> <body> <?php /* データの受け取り */ $namae = $_POST["namae"]; //お名前 $mailaddress = $_POST["mailaddress"]; //メールアドレス $naiyou = $_POST["naiyou"]; //お問合せ内容 /* 入力内容の確認 */ echo '<h3>入力内容を確認します</h3>'; echo '<dl>'; echo '<dt>【お名前】</dt><dd>'.$namae.'</dd>'; echo '<dt>【メールアドレス】</dt><dd>'.$mailaddress.'</dd>'; echo '<dt>【お問合せ内容】</dt><dd>'.$naiyou.'</dd>'; echo '</dl>'; ?> </body> </html>

上記のソースでいうと、 /* データの受け取り *///お名前//メールアドレス//お問合せ内容/* 入力内容の確認 */ の部分がコメントです。

TeraPadなどのテキストエディタを利用されている場合には、 コメント部分が他と異なる色で表示されるので、ソース中のどの部分がコメントなのか判別しやすいでしょう。

【図】


  1. フォーム入力ページを作成する
  2. 送信されたデータを受け取る
  3. 変数に代入する
  4. 受け取ったデータを安全な文字列に変換する
  5. 未入力チェック機能をつくる
  6. 未入力チェック機能を洗練させる
  7. [前のページへ戻る]ボタンをつくる
  8. 入力内容確認ページを完成させる
  9. メール送信処理ページを作成する
  10. メール送信フォームを完成させる