A simple mailform written by PHP
このページではTerrierの入力項目に対するバリデーションの設定について解説しています。
各入力項目に対する設定を配列要素として定義していきます(ここだけPHPを書く必要があります)。
入力フィールド名(input要素のname属性の値)を配列のキーとします。そのため、日本語フィールド名は推奨されません。
一つのフィールドに対する定義項目は以下の通りです。
"label" - 項目名を文字列で指定します。バリデーションエラーや送信時のフィールド名として使用されます。"rules" - 検証ルールを配列で指定します。ルールの詳細は次を参照してください。"reply" - このフィールドを自動返信対象にします。値はメールアドレスの形式である必要があります。例えば、自動返信を行なうメールアドレスの検証フィールドを作る場合、以下のようになります。
// HTML
<input type="email" name="email" value="">
// setting.php
$setting['email'] = array(
'label' => 'メールアドレス',
'reply' => true, // 自動返信指定
'rules' => array(
'required',
'valid_email',
'max_length@100'
)
);
検証ルールは以下が標準で実装されています。ルールには、検証に成功したかどうか(true/falseを返却するもの)と、値を加工するものがあります。また、"@"続いて検証パラメータを渡すものがあります。例えば10文字以内に制限する場合、検証ルールは"max_length@10"と記述します。検証パラメータは":"区切りで複数渡すものもあります。
"alnum" - 値が半角英数のみかどうかを検証します。"alnum_dash" - 値が半角英数、"-"、"_"のみかどうかを検証します。"alpha" - 値が半角英字のみかどうかを検証します。"alpha_dash" - 値が半角英字、"-"、"_"のみかどうかを検証します。"alpha_lower" - 値が半角英小文字のみかどうかを検証します。"alpha_upper" - 値が半角英大文字のみかどうかを検証します。"dateformat" - 値が時刻形式として妥当かどうかを検証します。日付の区切りをオプションパラメータで指定できます(初期値は"-")。"exact_date" - 妥当な日付かどうかを検証します。例えば、"2014-09-32"などは検証に失敗します。日付の区切りをオプションパラメータで指定できます(初期値は"-")。"future_date" - 現在よりも未来の日付かどうかを検証します。"past_date" - 現在よりも過去の日付かどうかを検証します。"max_length" - 値が指定文字数以内どうかを検証します。追加パラメータで文字数を指定します。"min_length" - 値が指定文字数以上どうかを検証します。追加パラメータで文字数を指定します。"exact_length" - 値が指定文字数に一致するかどうかを検証します。追加パラメータで文字数を指定します。"numeric" - 値がPHPにおける数値として判定可能かどうかを検証します("is_numeric()"関数で検証)。"range" - 値が指定範囲内の数値かどうかを判定します。追加パラメータは2つ必要です。"required" - 値が入力されているかどうかを検証します。"expects" - 値が指定した文字列リストに存在するかどうかを検証します。"blank" - 値が空文字かどうかを検証します。"valid_email" - 値がメールアドレスとして妥当な形式かどうかを検証します。"valid_url" - 値がURLとして妥当な形式かどうかを検証します。"ctype" - 値が半角数字のみかどうかを検証します。"unsigned" - 値が正の整数かどうかを検証します。"regex" - 値が正規表現にマッチするかどうかを検証します。追加パラメータに正規表現を指定します。"zipcode" - 値が郵便番号形式("XXX-XXXX")として妥当かどうかを検証します。"matches" - 値がもう一方の値を一致するかどうかを検証します。"hiragana" - 値がひらがなのみであるかどうかを検証します。"kana" - 値がカタカナのみであるかどうかを検証します。"conv_kana" - 全角カタカナを半角カタカナに変換します。"conv_num" - 全角数字を半角数字に変換します。