PHP التحقق من النموذج - حقول إلزامية

يوضح هذا الفصل كيفية إنشاء حقول الإدخال الإلزامية وكيفية إنشاء رسائل الأخطاء اللازمة.

PHP - حقول الإدخال

من قواعد التحقق في الفصل السابق، نرى أن "الاسم"، "البريد الإلكتروني" و "الجنس" هي حقول مطلوبة. هذه الحقول لا يمكن أن تكون فارغة ويجب أن يتم إدخالها في نموذج HTML.

الحقل قواعد التحقق
الاسم مطلوب. يجب أن يحتوي على أحرف وفراغات.
البريد الإلكتروني مطلوب. يجب أن يحتوي على عنوان بريد إلكتروني صالح (بما في ذلك @ و .).
الموقع الإلكتروني اختياري. إذا تم إدخاله، فيجب أن يحتوي على عنوان URL صالح.
تعليق اختياري. حقل إدخال متعدد الأسطر (حقل نصي).
الجنس مطلوب. يجب اختيار一项.

في الفصل السابق، كانت جميع الحقول الإدخالية اختيارية.

في الكود التالي نضيف بعض المتغيرات الجديدة: $nameErr،$emailErr،$genderErr و $websiteErr. هذه المتغيرات الخطأ ستحفظ رسائل الأخطاء للحقول المطلوبة. كما أضفنا جملة if else لكل متغير $_POST. هذه الجملة تتحقق من أن متغير $_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"]);?>">
الاسم: <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>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>

Run Example

The next step is to validate the input data, that is, 'Is the 'Name' field only letters and spaces?', and 'Does the 'E-mail' field contain a valid email address syntax?', and if the 'Website' field is filled in, 'Does this field contain a valid URL?'.