PHP – فیلدهای ضروری فرم‌ها (PHP Form Required Fields)

فیلدهای ضروری فرم‌های PHP

این فصل نشان می‌دهد که چگونه فیلدهای ورودی را ضروری کنیم و در صورت نیاز پیام‌های خطا ایجاد کنیم.

فیلدهای ضروری PHP

بر اساس جدول قوانین اعتبارسنجی در صفحه قبل، می‌بینیم که فیلدهای “نام” (Name)، “ایمیل” (E-mail) و “جنسیت” (Gender) ضروری هستند. این فیلدها نمی‌توانند خالی باشند و باید در فرم HTML پر شوند.

فیلد قوانین اعتبارسنجی
نام ضروری. + باید فقط حاوی حروف و فاصله باشد
ایمیل ضروری. + باید شامل یک آدرس ایمیل معتبر (با @ و .) باشد
وب‌سایت اختیاری. اگر موجود باشد، باید شامل یک URL معتبر باشد
نظر اختیاری. فیلد ورودی چند خطی (textarea)
جنسیت ضروری. باید یکی را انتخاب کنید

کد PHP برای اعتبارسنجی فیلدهای ضروری

در کد زیر، چند متغیر جدید اضافه کرده‌ایم: $nameErr، $emailErr، $genderErr و $websiteErr. این متغیرهای خطا پیام‌های خطا برای فیلدهای ضروری را نگه می‌دارند. همچنین برای هر متغیر $_POST یک عبارت if else اضافه کرده‌ایم که بررسی می‌کند آیا متغیر $_POST خالی است یا نه (با استفاده از تابع empty() پی‌اچ‌پی). اگر خالی باشد، یک پیام خطا در متغیرهای خطا ذخیره می‌شود و اگر خالی نباشد، داده‌های ورودی کاربر را از طریق تابع test_input() ارسال می‌کند:

// تعریف متغیرها و تنظیم آن‌ها به مقادیر خالی
$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"]);
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

نمایش پیام‌های خطا در فرم HTML

در فرم 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
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>

<input type="submit" name="submit" value="Submit">
</form>

اعتبارسنجی داده‌های ورودی

گام بعدی اعتبارسنجی داده‌های ورودی است، به این معنا که “آیا فیلد نام فقط حاوی حروف و فاصله است؟”، “آیا فیلد ایمیل شامل یک ساختار صحیح آدرس ایمیل است؟”، و اگر پر شده است، “آیا فیلد وب‌سایت شامل یک URL معتبر است؟”.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.