この章では、フォームに必要なフィールドとエラーメッセージを設定する方法を紹介します。
前の章では、テーブルの検証ルールを紹介しましたが、「名前」、「電子メール」、および「性別」フィールドは必須であり、各フィールドを空にすることはできません。
分野 | 検証ルール |
---|---|
名前 | 必須。 + には文字とスペースのみを含めることができます |
電子メール | 必須。 + 有効な電子メール アドレスが含まれている必要があります (「@」と「.」を含む) |
URL | オプション。 存在する場合は、有効な URL が含まれている必要があります |
述べる | オプション。複数行のフィールド (テキスト フィールド)。 |
性別 | 必須。いずれかを選択する必要があります。 |
前の章と同様、すべての入力フィールドはオプションです。
次のコードでは、いくつかの新しい変数 $nameErr、$emailErr、$genderErr、$websiteErr を追加しました。これらのエラー変数は必須フィールドに表示されます。 各 $_POST 変数に if else ステートメントも追加しました。これらのステートメントは、$_POST 変数が空かどうかをチェックします (PHP の empty() 関数を使用)。空の場合は、対応するエラー メッセージが表示されます。空でない場合、データは test_input() 関数に渡されます。
<?php// 変数を定義し、デフォルトで空の値に設定します $nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = ""; if ($_SERVER ["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "名前は必須です。"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "電子メールが必要です。" } else { $email = test_input ( $_POST["電子メール"]); } if (empty($_POST["ウェブサイト"])) { $ウェブサイト = "" } else { $ウェブサイト = test_input($_POST["website"]); } if (empty($_POST["comment"]) { $comment = "" } else { $comment = test_input($_POST["comment"]); if (empty($_POST["gender"])) { $genderErr = "性別は必須です。" } else { $gender = test_input($_POST["性別"]);
次の HTML フォームの例では、各フィールドにいくつかのスクリプトを追加しています。各スクリプトは、情報が正しく入力されなかった場合にエラー メッセージを表示します。 (ユーザーが情報を入力せずにフォームを送信した場合、エラーメッセージが出力されます):
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> 名前: <input type="text" name="name"> <span>* <? php echo $nameErr;?></span> <br><br> 電子メール: <input type="text" name="email"> <span>* <?php echo $emailErr;?></span > <br><br> ウェブサイト: <input type="text" name="website"> <span><?php echo $websiteErr;?></span> <br><br> 備考: <textarea name=" comment" rows="5"cols="40"></textarea> <br><br> 性別: <input type="radio" name="gender" value="女性">女性<input type="radio " 名前 = 性別" value="male">男性<span>* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </フォーム>