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

通常オンラインにアクセスするときに、一部の Web サイトではアカウントの登録を求められますが、入力していない重要な情報がある場合は、その情報を入力する必要があります。入力する必要がある内容を入力するよう求められます。この章では、フォームの必須項目とエラーメッセージについて説明します。


PHP - 必須フィールド

必須フィールドは、情報を入力するときに入力する必要があるフィールドです。そうでない場合、合格する方法はありません

前の章で、フォームの検証ルールを紹介しました。 「名前」、「電子メール」、および「性別」フィールドが必須であり、各フィールドを空にすることはできないことがわかります。

が必要です。 + 有効なメール アドレスである必要があります (「@」と「.」を含む) 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["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 = "性别是必需的。";
     } else {
         $gender = test_input($_POST["gender"]);
     }
 }
 ?>

上記のコードの意味は、3 つの必須フィールド入力ボックス: name、メールアドレス、性別を入力して送信すると、必要な名前とメールアドレスが記載された、対応するエラーメッセージがページに表示されます。空白でない場合は、検証に合格し、else ステートメントの内容が実行されます。

しかし、上記のコードではまだエラーメッセージを表示できません。下を見てみましょう。


PHP - エラーメッセージを表示します

次の HTML サンプルフォームでは、各フィールドにいくつかのスクリプトを追加しています。各スクリプトは、間違った情報を入力するとエラーメッセージが表示されます。 (ユーザーが情報を入力せずにフォームを送信した場合、エラーメッセージが出力されます):

Example

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文网</title>
 </head>
 
 <style>
     .error {color: #FF0000;}
 </style>
 <body>
 <?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["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 = "性别是必选的";
     } else {
         $gender = test_input($_POST["gender"]);
     }
 }
 
 function test_input($data) {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
 }
 ?>
 
 <h2>PHP 验证实例</h2>
 <p><span class="error">* 必需的字段</span></p>
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
     姓名:<input type="text" name="name">
     <span class="error">* <?php echo $nameErr;?></span>
     <br><br>
     电邮:<input type="text" name="email">
     <span class="error">* <?php echo $emailErr;?></span>
     <br><br>
     网址:<input type="text" name="website">
     <span class="error"><?php echo $websiteErr;?></span>
     <br><br>
     评论:<textarea name="comment" rows="5" cols="40"></textarea>
     <br><br>
     性别:
     <input type="radio" name="gender" value="female">女性
     <input type="radio" name="gender" value="male">男性
     <span class="error">* <?php echo $genderErr;?></span>
     <br><br>
     <input type="submit" name="submit" value="提交">
 </form>
 
 <?php
 echo "<h2>您的输入:</h2>";
 echo $name;
 echo "<br>";
 echo $email;
 echo "<br>";
 echo $website;
 echo "<br>";
 echo $comment;
 echo "<br>";
 echo $gender;
 ?>
 
 </body>
 </html>

上記の例で、入力せずに送信した場合* の付いたボックスにチェックを入れると、次のページが表示されます:

2.png

とにかく、合格です。


次のステップは、入力データを検証することです。つまり、「名前フィールドには文字とスペースのみが含まれていますか?」、「電子メールフィールドには有効な電子メールアドレス構文が含まれていますか?」、および「ウェブサイト」フィールドが入力されているかどうかを確認します。 「このフィールドには有効な URL が含まれていますか?」


学び続ける
||
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <style> .error {color: #FF0000;} </style> <body> <?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["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 = "性别是必选的"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP 验证实例</h2> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 姓名:<input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> 电邮:<input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> 网址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 评论:<textarea name="comment" rows="5" cols="40"></textarea> <br><br> 性别: <input type="radio" name="gender" value="female">女性 <input type="radio" name="gender" value="male">男性 <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="提交"> </form> <?php echo "<h2>您的输入:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜