PHP 表单验证 - 必填字段
- صفحه قبلی تأیید فرم PHP
- صفحه بعدی PHP فرم URL/E-mail
本节展示如何制作必填输入字段,并创建需要时所用的错误消息。
PHP - 输入字段
从上一节中的验证规则中,我们看到 "Name", "E-mail" 以及 "Gender" 字段是必需的。这些字段不能为空且必须在 HTML 表单中填写。
字段 | 验证规则 |
---|---|
Name | 必需。必须包含字母和空格。 |
必需。必须包含有效的电子邮件地址(包含 @ 和 .)。 | |
Website | 可选。如果选填,则必须包含有效的 URL。 |
Comment | 可选。多行输入字段(文本框)。 |
Gender | 必需。必须选择一项。 |
在上一节中,所有输入字段都是可选的。
在下面的代码中我们增加了一些新变量:$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 = "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"]); } } ?>
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> <label>نظر: <textarea name="comment" rows="5" cols="40"></textarea></label> <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>
در اینجا است که دادههای ورودی تأیید میشود، یعنی «این فیلد فقط شامل حروف و فضاهای خالی است؟» و «آیا فیلد E-mail دارای ساختار معتبر ایمیل است؟» و اگر فیلد Website پر شده باشد، «آیا این فیلد دارای URL معتبر است؟».
- صفحه قبلی تأیید فرم PHP
- صفحه بعدی PHP فرم URL/E-mail