MENU

PHPのバリデーション実装時に頻出のパターン

目次

PHPの記述内容

バリデーション関数の雛形

function validate($value)
{
    $errors = [];
    //バリデーションの条件式を記載、複数ある場合はelseifで連続入力
    return $errors;
}

input type=”text”に関する条件式

未入力エラー:strlen関数(公式ドキュメント

if (!strlen($value[$key])) {
    $errors[$key] = '必須入力です';
}

文字数制限:strlen関数

if (strlen($value[$key]) > 100) {
    $errors['founder'] = '100文字以内で入力して下さい';
}

input type=”date”に関する条件式

YYYY-MM-DD以外の入力形式をチェック
・年、月、日を分割:explode関数(公式ドキュメント
・分割された配列数をチェック:count関数(公式ドキュメント

$dates = explode('-', $value[$key]);

if (count($dates) !== 3) {
    $errors[$key] = '正しい形式で入力して下さい';
}

正しい日付かチェック
・年、月、日を分割:explode関数
・時刻の妥当性を確認:checkdate関数(公式ドキュメント

$dates = explode('-', $value[$key]);

if (!checkdate($dates[1], $dates[2], $dates[0])) {
    $errors[$key] = '正しい日付で入力して下さい';
}
//[0]:YYYY,[1]:MM,[2]:DD

HTMLへの表示

リスト表示

count関数を使用して、エラーがあった場合のみリスト表示する

<?php if (count($errors)) : ?>
    <ul>
        <?php foreach ($errors as $error) : ?>
            <li><?php echo $error; ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次
閉じる