@ PHP

form:エラーメッセージを表示する

フォームのエラーメッセージを表示する

form_04.php では、validate_form() に失敗しても、フォームの何が間違っているのかを指摘しません。サンプルでは、validate_form() に失敗すると show_form() を実行して、可能性のあるエラーメッセージを表示します。

form_05.php

<?php
if (isset($_POST['_submit_check'])) {
    if ($form_errors = validate_form()) {
        show_form($form_errors);
    } else {
        process_form();
    }
} else {
    show_form();
}

function process_form() {
    print 'こんにちは、' . $_POST['my_name'] . 'さん。';
}

function show_form($errors = '') {
    if ($errors) {
        print 'エラーを修正してください:<ul><li>';
        print implode('</li><li>', $errors);
        print '</li></ul>';
    }

    print <<<_HTML_
<form method="post" action="">
  <p>お名前:<input type="text" name="my_name"></p>
  <p><input type="submit" value="送信する"></p>
  <input type="hidden" name="_submit_check" value="1">
</form>
_HTML_;
}

function validate_form() {
    $errors = array();
    if (strlen($_POST['my_name']) < 6) {
        $errors[] = 'お名前は3文字以上で入力してください。';
    }
    return $errors;
}