PHP 5 フォーム - 必須フィールド

❮ 前章へ 次章へ ❯

この章では、入力フィールドを必須にする方法と、必要に応じてエラーメッセージを作成する方法を説明します。


PHP - 必須フィールド

前ページの検証規則の表をみると、"Name"、"E-mail"、"Gender" フィールドが必須であることがわかります。 このフィールドは空にすることはできないので、HTMLフォームに入力しなければなりません。

フィールド 検証の規定
名前 必須。+ 文字と空白のみを含まなければならない
E-mail 必須。+ 妥当なメールアドレス(@ と .)を含まなければならない
Website 任意。存在する場合は、妥当な URL を含まなければならない
Comment 任意。複数行入力フィールド(テキストエリア)
Gender 必須。1つを選択しなければならない

前の章では、すべての入力フィールドが任意でした。

次のコードで、$nameErr、$emailErr、$genderErr、$websiteErr という新しい変数を追加します。 これらのエラー変数には、必須フィールドのエラーメッセージを格納します。$_POST変数ごとに if else 文も追加しました。 これは、$_POST変数が空であるかどうかを(PHPのempty()関数を使用して)チェックします。 空の場合は、エラー・メッセージをそれぞれのエラー変数に格納し、空でない場合は、test_input() 関数を通してユーザ入力データを変数に格納します:

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
  }

  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

次のステップでは、「名前フィールドに文字と空白のみが含まれていますか?」、「電子メールフィールドには有効な電子メールアドレスの構文が含まれていますか?」といった入力データを検証し、ウェブサイトのフィールドに有効なURLが含まれていますか? "

PHP - エラーメッセージの表示

次に、HTMLフォーム内の各必須フィールドの後に小さなスクリプトを追加し、ユーザが必須フィールドに入力しないでフォームを送信しようとした場合に、 誤りを指摘するエラーメッセージを生成します:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
例の実行 »

次のステップでは、「Nameフィールドには文字と空白のみが含まれていますか?」とか 「E-mailフィールドには正しい構文のメールアドレスが含まれていますか?」や「Websiteフィールドに正しいURLが含まれていますか?」 といった入力データの検証を行います。


❮ 前章へ 次章へ ❯