6-8 PHPでフォームデータを受け取って表示する

Web開発学習ロードマップ

ここまでで、

・変数
・条件分岐
・繰り返し
・配列

といった、PHPの基礎的な部品がすべて揃いました。

ここからは、それらを組み合わせて
Webアプリケーションらしい処理 を書いていきます。

その第一歩が、
フォームデータをPHPで受け取る処理 です。

この記事では、

・HTMLフォームの送信
・PHPでの受け取り方
・表示するまでの最小構成

を、実際に動くコードで解説します。


この記事で学べること

・HTMLフォームとPHPの関係
・$_POST / $_GET の役割
・フォームデータの受け取り方
・受け取った値を表示する方法


フォーム送信の基本的な流れ

フォーム処理は、
次の流れで動いています。

  1. HTMLでフォームを表示

  2. ユーザーが入力して送信

  3. PHPがデータを受け取る

  4. 処理・表示を行う

この流れを
一度しっかり体験すること が重要です。


HTMLフォームを作成する

まずは、
最小構成のフォーム を作ります。

サンプルコード①:HTMLフォーム

<form method="post" action="result.php">
  <label>
    名前:
    <input type="text" name="username">
  </label>
  <br>
  <button type="submit">送信</button>
</form>

ポイント

・method=”post”
 → POST送信を行う
・action
 → 送信先のPHPファイル
・name 属性
 → PHP側で使うキー名

name 属性がないと、
PHPでは値を受け取れません。


PHPでフォームデータを受け取る

次に、
送信先の PHP ファイルを作成します。

サンプルコード②:フォームデータの受け取り

<?php
$username = $_POST['username'];

echo $username;

コードの読み解き

・$_POST
 → POST送信されたデータをまとめた配列
・[‘username’]
 → フォームの name 属性と対応
・echo
 → 値を表示

これで、
フォームに入力した内容が
画面に表示されます。


$_POST は配列である

ここは非常に重要です。

$_POST は、
連想配列 です。

つまり、

・キー → name 属性
・値 → 入力された内容

という構造になっています。


未定義エラーを防ぐ書き方

フォーム未送信時に
エラーが出るのを防ぐため、
次の書き方がよく使われます。

サンプルコード③:安全な受け取り方

<?php
$username = $_POST['username'] ?? '';

echo $username;

ポイント

・??(null合体演算子)
 → 値がなければ空文字にする

この書き方は、
実務でも頻繁に使われます。


GET送信との違い

フォームは、
GET送信することもできます。

サンプルコード④:GET送信フォーム

<form method="get" action="result.php">
  <input type="text" name="keyword">
  <button type="submit">検索</button>
</form>

PHP側の受け取り

<?php
$keyword = $_GET['keyword'] ?? '';
echo $keyword;

POSTとGETの使い分け

目安は次の通りです。

・登録・更新
 → POST

・検索・ページ移動
 → GET


フォーム処理で必ず意識すべきこと

ここでは
あえて表示だけ を行っていますが、
実務では次の処理が必須になります。

・未入力チェック(バリデーション)
・XSS対策
・CSRF対策

これらは、
次の記事以降で順番に扱います。


初心者がよくやるミス

フォーム処理で多いミスです。

・name 属性を書き忘れる
・$_POST と $_GET を混同する
・未送信時のエラーを放置する

「送信 → 受け取り」
の対応関係を必ず確認しましょう。


学習初期のおすすめ練習

次の練習がおすすめです。

・入力欄を増やして受け取る
・複数項目を echo で表示する
・GET と POST を切り替えて確認する


まとめ

この記事では、
PHPでフォームデータを受け取るための
基本を学びました。

・HTMLフォームと name 属性
・$_POST / $_GET の役割
・安全な受け取り方

ここまで理解できれば、
PHPで ユーザー入力を扱う土台 が完成です。


次に読むべき記事

▶ 次の記事
6-9 PHPのバリデーションとは何か

▶ 関連記事
6-7 PHPで配列を扱う基本

コメント