ここまでで、
・変数
・条件分岐
・繰り返し
・配列
といった、PHPの基礎的な部品がすべて揃いました。
ここからは、それらを組み合わせて
Webアプリケーションらしい処理 を書いていきます。
その第一歩が、
フォームデータをPHPで受け取る処理 です。
この記事では、
・HTMLフォームの送信
・PHPでの受け取り方
・表示するまでの最小構成
を、実際に動くコードで解説します。
この記事で学べること
・HTMLフォームとPHPの関係
・$_POST / $_GET の役割
・フォームデータの受け取り方
・受け取った値を表示する方法
フォーム送信の基本的な流れ
フォーム処理は、
次の流れで動いています。
-
HTMLでフォームを表示
-
ユーザーが入力して送信
-
PHPがデータを受け取る
-
処理・表示を行う
この流れを
一度しっかり体験すること が重要です。
HTMLフォームを作成する
まずは、
最小構成のフォーム を作ります。
サンプルコード①:HTMLフォーム
ポイント
・method=”post”
→ POST送信を行う
・action
→ 送信先のPHPファイル
・name 属性
→ PHP側で使うキー名
name 属性がないと、
PHPでは値を受け取れません。
PHPでフォームデータを受け取る
次に、
送信先の PHP ファイルを作成します。
サンプルコード②:フォームデータの受け取り
コードの読み解き
・$_POST
→ POST送信されたデータをまとめた配列
・[‘username’]
→ フォームの name 属性と対応
・echo
→ 値を表示
これで、
フォームに入力した内容が
画面に表示されます。
$_POST は配列である
ここは非常に重要です。
$_POST は、
連想配列 です。
つまり、
・キー → name 属性
・値 → 入力された内容
という構造になっています。
未定義エラーを防ぐ書き方
フォーム未送信時に
エラーが出るのを防ぐため、
次の書き方がよく使われます。
サンプルコード③:安全な受け取り方
ポイント
・??(null合体演算子)
→ 値がなければ空文字にする
この書き方は、
実務でも頻繁に使われます。
GET送信との違い
フォームは、
GET送信することもできます。
サンプルコード④:GET送信フォーム
PHP側の受け取り
POSTとGETの使い分け
目安は次の通りです。
・登録・更新
→ POST
・検索・ページ移動
→ GET
フォーム処理で必ず意識すべきこと
ここでは
あえて表示だけ を行っていますが、
実務では次の処理が必須になります。
・未入力チェック(バリデーション)
・XSS対策
・CSRF対策
これらは、
次の記事以降で順番に扱います。
初心者がよくやるミス
フォーム処理で多いミスです。
・name 属性を書き忘れる
・$_POST と $_GET を混同する
・未送信時のエラーを放置する
「送信 → 受け取り」
の対応関係を必ず確認しましょう。
学習初期のおすすめ練習
次の練習がおすすめです。
・入力欄を増やして受け取る
・複数項目を echo で表示する
・GET と POST を切り替えて確認する
まとめ
この記事では、
PHPでフォームデータを受け取るための
基本を学びました。
・HTMLフォームと name 属性
・$_POST / $_GET の役割
・安全な受け取り方
ここまで理解できれば、
PHPで ユーザー入力を扱う土台 が完成です。
次に読むべき記事
▶ 次の記事
6-9 PHPのバリデーションとは何か
▶ 関連記事
6-7 PHPで配列を扱う基本



コメント