前回、ラジオボタンやセレクトボックスなどを利用したフォームの作り方を紹介しました。

今回は、前回作成したフォームを元にデータがどう出力されるのか説明していきます。プログラミングの基本となる、if文を使った条件分岐なども解説します。実際のサービスをイメージしながら理解していきましょう。

データの表示

まずは、新しいphpファイルを作成し、入力されたデータの結果を表示していきます。

データの受取方法

<?php
echo $_POST['email'];
echo $_POST['password'];
echo $_POST['list'];
echo $_POST['region'];
?>

$_POSTというスーパーグローバル変数を使用して呼び出すことができます。スーパーグローバル変数とは、プログラムのどこからでも使用可能な変数です。

実はプログラムの変数には「スコープ」という概念があり、定義の仕方によって呼び出せる範囲が変わります。今回はプログラムのイメージを掴んでもらうことが目的なので、詳細は割愛しますが、興味のある方は調べてみてください。

なお、ここではpost送信を例にとりましたが、get送信のときは$_GETを使います。

条件分岐

<?php
$email = $_POST['email'];
$list = $_POST['list'];
$password = $_POST['password'];
$region = $_POST['region'];

// メールアドレス
if ($email == '') {
$email_result = 'メールアドレスが入力されていません。';
} else {
$email_result = $email;
}
// パスワード
if ($password == '') {
$password_result = 'パスワードが入力されていません。';
} else {
$password_result = $password;
}
// リスト
if ($list == '') {
$list_result = 'リストが入力されていません。';
} else {
$list_result = $list;
}
// 地域
if ($region == '') {
$region_result = '地域が指定されていません。';
} else {
$region_result = $region;
}
?>

ifの次に記述されている丸括弧に注目です。「$○○==”」という条件が記載されています。本来クオーテーションの間には文字列を記述しますが、ここでは何の文字列も記述していません。これはデータがない状態を指しています。

$○○は、メールアドレス、パスワード、リスト、地域の欄にユーザーが記載した内容を格納する変数という想定ですので、先ほどの条件は、メールアドレス、パスワード、リスト、地域のそれぞれの欄に対して、「何も入力されなかった場合」という条件を判定させていることになります。

そして条件に一致した場合は、その後に続く波括弧内に記述された処理を実行します。ここでは、「○○が入力されていません」などの文字列を、画面出力用に作った変数$○○_resultに設定しています(画面出力は後述のプログラムで行います)。

また、波括弧の後にはelseという記述があります。こちらは、「前の条件に一致しなかった場合」という意味の条件文です。前の条件に一致しなかった場合に、その後に続く波括弧の処理を実行します。ここでは入力された値を変数$○○_resultに設定しています。

このようにif文を使うことで、条件によって処理を変えることができます。

では、変数$○○_resultを出力してみましょう。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?php echo $email_result; ?><br>
<?php echo $password_result; ?><br>
<?php echo $region_result; ?><br>
<?php echo $list_result; ?><br>
</body>
</html>

こちらは、PHPのコードの下に書いています。

前回紹介したHTMLのフォームに入力すると、例えば、以下のような結果が表示されることになります。

例えば、もしパスワードが入力されていない場合は

このようになります。

Webサーバーとは

これまで紹介してきたHTMLファイルやPHPプログラムをインターネットの世界で動かすには、Webサーバーというものが必要です。

Webサイトの閲覧は、「クライアント(見る側のデバイス)とサーバー(コンテンツを用意する側のコンピュータ)」という関係性によって実現されています。

クライアントは日本語で「依頼主」のことですね。HTMLページを送ってくださいと、依頼しているわけです。ではサーバーは何かというと「提供者」、すなわち依頼主からのリクエストに応じて、Webページを提供するという立場になります。これまで作成してきたファイルはサーバに置いておき、クライアントから依頼をもらう度に、サーバがクライアントへ送信し、Webブラウザなどでそれを表示するという流れになります。

なお、クライアントからサーバーに対しては、Webページをリクエストするだけでなく、データを送信することもあります。上記のアンケートフォームがこの送信の形です。

今回は、入力の有無をチェックするサンプルプログラムを紹介しましたが、皆さんが日頃見るようなフォームには、他にも多くの決まりごとがあるかと思います。「パスワードは○○文字以上」「アカウント名とパスワードが同一なのはNG」などです。そういったチェックもPHPなどを使えば簡単に行えます。

*  *  *

日頃利用しているサービスの裏側がどうなっているのか、エンジニアがどういう作業を行っているのか、少しでも理解できたかと思います。今回の条件分岐は非常に小さい作業ですが、こういった作業の積み重ねで一つのサービスができあがっていることをイメージしておくと良いでしょう。

著者紹介


TechAcademy (https://techacademy.jp/)

プログラミングやWebデザイン、アプリ開発が学べるオンラインスクールを運営。

TechAcademyマガジンでは、プログラミングやWebデザインなど技術に関する最新トレンド、ツールの使い方を紹介しています。開発作業や学習に役立つコンテンツがご覧になれます。

なお、本稿はTechAcademy の「はじめてのプログラミングコース」を元に解説しています。