فرم‌ها - فیلدهای اجباری

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
۱مدیریت فرم
۲ارزیابی فرم
۳فیلدهای اجباری فرم
۴ارزیابی URL/E-mail
۵فرم کامل
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP

این فصل به شما نشان می‌دهد که چگونه فیلدهای ورودی را اجباری کنید و در صورت لزوم پیغام‌های خطا ایجاد کنید. [۱]

PHP - فیلدهای اجباری

از جدول قوانین ارزیابی صفحه قبل، ما می‌بینیم که فیلدهای "Name" ،"E-mail"، و جنسیت، فیلدهای اجباری هستند. این فیلدها در فرم‌های HTML نمی‌توانند خالی باشند و می‌بایست پر شوند.

فیلد قوانین ارزیابی
Name اجباری است. + می‌بایست شامل حروف و فضای خالی باشد.
E-mail اجباری است. + می‌بایست شامل یک آدرس پست الکترونیکی معتبر (با @ و) باشد.
Website اختیاری است. در صورت وجود، می‌بایست شامل یک آدرس معتبر باشد.
Comment اختیاری است. فیلد ورودی اطلاعات چند خطی (textarea)
Gender اجباری است. می‌بایست یک مورد را انتخاب کند.

<translate> نکته</translate>  نکته: در فصل گذشته، تمامی فیلدهای ورودی اختیاری بودند.

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

<?php
// define variables and set to empty values
$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، ما یک اسکریپت کوچک بعد از هر فیلد اجباری اضافه کرده‌ایم، که پیغام خطای مناسب را در صورت لزوم ایجاد می‌کند (که برای زمانی است که کاربر سعی می‌کند بدون پر کردن فیلدهای اجباری فرم را ثبت کند):

مثال

 1 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
 2 
 3 Name: <input type="text" name="name">
 4 <span class="error">* <?php echo $nameErr;?></span>
 5 <br><br>
 6 E-mail:
 7 <input type="text" name="email">
 8 <span class="error">* <?php echo $emailErr;?></span>
 9 <br><br>
10 Website:
11 <input type="text" name="website">
12 <span class="error"><?php echo $websiteErr;?></span>
13 <br><br>
14 Comment: <textarea name="comment" rows="5" cols="40"></textarea>
15 <br><br>
16 Gender:
17 <input type="radio" name="gender" value="female">Female
18 <input type="radio" name="gender" value="male">Male
19 <input type="radio" name="gender" value="other">Other
20 <span class="error">* <?php echo $genderErr;?></span>
21 <br><br>
22 <input type="submit" name="submit" value="Submit">
23 
24 </form>


مشاهدهٔ نتیجه


قدم بعدی ارزیابی داده‌های ورودی است، که «آیا فیلد نام فقط شامل حروف و فضای خالی است؟»، و «آیا فیلد پست الکترونیکی (به انگلیسی: E-mail) شامل یک آدرس ایمیل معتبر بر اساس شیوه نوشتار آدرس ایمیل است؟» و در صورت پر بودن فیلد وب‌سایت، «آیا فیلد وب‌سایت شامل یک آدرس معتبر است؟».


منابع آموزشی