前回、ラジオボタンやセレクトボックスなどを利用したフォームの作り方を紹介しました。
今回は、前回作成したフォームを元にデータがどう出力されるのか説明していきます。プログラミングの基本となる、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 の「はじめてのプログラミングコース」を元に解説しています。