前の記事では、
PHPで フォームデータを受け取って表示する ところまで進みました。
しかし、実務では
「受け取れればOK」では終わりません。
・未入力のまま送信されていないか
・想定外の値が入っていないか
・そもそも安全なデータか
これらをチェックする仕組みが、
バリデーション です。
この記事では、
PHPにおけるバリデーションの考え方と基本実装 を
コード付きで解説します。
この記事で学べること
・バリデーションとは何か
・なぜバリデーションが必要なのか
・必須チェックの実装方法
・エラーメッセージの扱い方
・実務につながる基本パターン
バリデーションとは何か
バリデーションとは、
入力されたデータが正しいかどうかを検証する処理 です。
具体的には、
・空欄ではないか
・文字数は適切か
・形式が正しいか
といったチェックを行います。
なぜバリデーションが必要なのか
バリデーションを行わないと、
次のような問題が起こります。
・未入力のまま登録される
・不正なデータが保存される
・エラーや不具合の原因になる
また、
セキュリティ面でも必須 です。
「ユーザーは必ず正しく入力してくれる」
という前提は、
Web開発では成り立ちません。
バリデーションの基本的な流れ
PHPでのバリデーションは、
次の流れで考えると分かりやすくなります。
-
フォームデータを受け取る
-
条件に合っているか確認する
-
問題があればエラーを保存する
-
問題なければ次の処理へ進む
必須チェックの基本
まずは、
最も基本的な必須チェック を見てみましょう。
サンプルコード①:必須入力チェック
コードの解説
・$errors
→ エラーメッセージを入れる配列
・empty
→ 値が空かどうかを判定
・エラーがあれば配列に追加
・最後にまとめて表示
この形が、
PHPバリデーションの基本形 です。
なぜエラーは配列で管理するのか
エラーを配列で管理すると、
・複数のエラーを同時に扱える
・後で表示方法を変えやすい
・処理の流れが整理される
というメリットがあります。
実務では、
エラー=配列
と考えるのが一般的です。
文字数チェックの考え方
次に、
文字数をチェックする例です。
サンプルコード②:文字数チェック
ポイント解説
・mb_strlen
→ 日本語を含めた文字数を正しく数える
・文字数制限は実務で非常によく使われる
「長すぎる入力」は、
想定外の原因になりやすいため
必ずチェックしましょう。
複数項目のバリデーション例
実際のフォームでは、
複数の入力項目があります。
サンプルコード③:複数項目チェック
バリデーションは「処理の入口」で行う
重要な考え方です。
バリデーションは、
・データを使う前
・保存する前
・処理を進める前
必ず最初に行う
のが基本です。
途中で行うと、
ロジックが複雑になります。
バリデーションと表示処理は分ける
実務では、
・チェック処理
・エラー表示
を分けて考えます。
最初は1ファイルでも問題ありませんが、
役割を意識して書く癖 を付けましょう。
初心者がよくやるミス
バリデーションで多いミスです。
・チェックせずに処理を進める
・エラーが1つしか表示できない
・値が存在しないのに参照する
「まずチェックする」
という順序を必ず守りましょう。
バリデーションは実務の基礎体力
バリデーションが書けるようになると、
・フォーム処理が安定する
・バグが減る
・コードに自信が持てる
という変化があります。
この感覚は、
実務に直結します。
まとめ
PHPのバリデーションでは、
・入力値を疑う
・条件を決めてチェックする
・エラーは配列で管理する
この3点が基本です。
ここまで来ると、
PHPで 安全なフォーム処理
が書けるようになります。
次に読むべき記事
▶ 次の記事
6-10 XSSとは?なぜ危険なのか
▶ 関連記事
6-8 PHPでフォームデータを受け取って表示する



コメント