†ユーザー「入力値」の妥当性を、システム側で「検証」し、適切に処理すること。†CodeIgniterで用意されているバリデーションクラスを利用して、ユーザーの入力値をチェックします。入力ページ(フォーム)が表示されます。ユーザーが、入力して送信します。間違ったデータが送信された場合や、必要項目が入力されていない場合、エラーメッセージを、入力したデータと一緒にフォームで再表示します。送信データが正しい形式になるまで、上記の処理を繰り返します。データを受け取るページで、入力値のチェック処理を行います。必須入力のデータをチェックする。データが、正しいデータ型か?、データが条件に合致するか?等をチェックする。(ユーザー名が送信された場合、許可した文字だけになっているか?等)セキュリティのためにデータをサニタイズする。必要であれば、前もってデータをフォーマットします。(前後の余計な空白文字を除去する、等)データベースに追加するデータを準備します。次の3つのファイルを用意します。入力フォームのビューファイルを用意する。†バリデーションの結果を表示するビューファイルを用意する。入力ページを制御するコントローラーファイルを用意する。†バリデーションクラスのset_rules()メソッドを使って検証ルールを設定します。†set_rules()メソッドに、3つの引数を指定します。「フォームの表示名」は、エラーメッセージの表示で使われる。「検証ルール」は、CodeIgniterが用意してくれた検証ルールだけではなく、コールバック関数を自作することによって、ユーザーが指定した検証ルールを適用させることもできる。中で、バリデーションクラスを初期化(ロード)した後、set_rules()メソッドを使います。?>CodeIgniterでは、指定したフィールドにどれだけ多くのルールを適用してもかまいません。ルールは順番に続けて適用することができ、同時にデータを整形したり前処理を行ったりすることもできます。一回で全ての検証ルールを設定したい場合、set_rules()メソッドの引数を配列にします。引数の配列は、検証ルール設定メソッドを通る配列の形式で記述しなければいけません。†set_rules()メソッドの、3番目の引数である「検証ルール」は、複数のルールを指定できます。各ルールは「|」でつなげて記述します。フィールドは、5文字より小さくてはだめで、12文字を超えてはいけません。フィールドは、パスワード確認フィールドと入力が一致しなければなりません。フィールドは、正しいメールアドレスの形式でなければなりません。いうルールを追加してします。†バリデーションの機能は、データの整形をすることもできます。以下のように、ルールを追加することができます。機能を通すというルール(処理)を追加してします。データの整形を指定するルール名として、htmlspecialchars、trim、MD5などのような引数を1つだけとるPHPの組込み関数はどれでもルールとして使用することができます。入力エラーがあった場合、元のデータをフォームに表示させる必要があるため、検証が済んだ後に、データ整形をしたいのが普通の流れだと思います。†コールバックメソッドを作ると、独自の検証ルールを設定できます。†コールバックは、「他の関数に、引数として渡される関数」のことを「コールバック関数」といいます。CodeIgniterのバリデーションクラスは、検証ルールを設定するset_rules()メソッドの第3引数によって、他のメソッド(=コールバックメソッド)を呼び出す仕組みになっており、いろいろな検証作業をさせることができます。system/libraries/Form_validation.phpのソースコードを見ると、仕組みの詳細が分かります。CodeIgniterが、標準で用意している検証作業(のメソッド)ユーザーが独自に定義できる検証作業(のメソッド)が使えます。以下は、ユーザーが独自に定義できる検証作業(=コールバックメソッドを自前で用意する方法)の説明になります。†ユーザ定義の検証メソッドへのコールバックが、CodeIgniterでサポートされています。この機能を使えば、検証ルールを拡張することができます。ユーザー名の登録において、固有の名前かどうかを調べるためにデータベースを参照する必要がある場合など、コールバックメソッドを作って調べることができます。これは、次のような方法でできます。検証ルールで、「username」に適用するルールを次のように変更します。?>次に「username_check」という名前の新しいメソッドをコントローラに追加します。}}?>set_rules()メソッドの第3引数で、自前で用意したコールバックメソッドを呼び出すには、「callback_」+「コールバックメソッド名」という値を指定すればOKと。set_rules()の第3引数で、「callback_username_check」と指定する。「username_check」というメソッドが呼び出されて使われる。CodeIgniterのバリデーションクラスで用意されている既存の検証ルールではチェックできない条件も、自前でコールバックメソッドを用意すればチェックできるようになります。正規表現を使った細かいチェック等をやりたい場合に便利な機能ですね!例:郵便番号の形式「123-4567」に合致しているかチェックする等。†バリデーションクラスのrun()メソッドで、ユーザー入力値の検証を実行します。