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

از ویکی کد
پرش به ناوبری پرش به جستجو
میانبر:
الگو:اصلاح جدول


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

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

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

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

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

 1 <?php
 2 // define variables and set to empty values
 3 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 4 $name = $email = $gender = $comment = $website = "";
 5 
 6 if ($_SERVER["REQUEST_METHOD"] == "POST") {
 7   if (empty($_POST["name"])) {
 8     $nameErr = "Name is required";
 9   } else {
10     $name = test_input($_POST["name"]);
11   }
12 
13   if (empty($_POST["email"])) {
14     $emailErr = "Email is required";
15   } else {
16     $email = test_input($_POST["email"]);
17   }
18 
19   if (empty($_POST["website"])) {
20     $website = "";
21   } else {
22     $website = test_input($_POST["website"]);
23   }
24 
25   if (empty($_POST["comment"])) {
26     $comment = "";
27   } else {
28     $comment = test_input($_POST["comment"]);
29   }
30 
31   if (empty($_POST["gender"])) {
32     $genderErr = "Gender is required";
33   } else {
34     $gender = test_input($_POST["gender"]);
35   }
36 }
37 ?>

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) شامل یک آدرس ایمیل معتبر بر اساس شیوه نوشتار آدرس ایمیل است؟» و در صورت پر بودن فیلد وب‌سایت، «آیا فیلد وب‌سایت شامل یک آدرس معتبر است؟».

منابع آموزشی