آموزش PHP

آموزش PHP - مثال اعتبارسنجی

فیلد الزامی چک می کند که آیا فیلد پر شده است یا خیر. اکثر موارد از نماد * برای نمایش فیلدهای الزامی استفاده می کنیم.

اعتبار سنجی چیست؟

اعتبار سنجی یا Validation به معنی بررسی ورودی ارسال شده توسط کاربر است. دو نوع تایید در PHP وجود دارد که به شرح زیر می باشند:

  • Client-Side Validation  (تأیید صحت مشتری) : اعتبار سنجی بر روی مرورگرهای وب سرویس گیرنده انجام می شود.
  •  Server Side Validation (اعتبار سنجی سمت سرور) : پس از ارسال داده ها، داده ها به یک سرور ارسال شده و چک های اعتبار سنجی در سمت سرور انجام می شود.

 برخی از قوانین اعتبار سنجی برای فیلد:

فیلد قوانین اعتبار سنجی
Name باید شامل حروف و فاصله باشد.
Email باید شامل @ و . باشد.
Website باید شامل URL معتبر باشد.
Radio باید حداقل یک مورد انتخاب شده باشد.
Check Box باید حداقل یک مورد تیک خورده باشد.
Drop Down menu باید حداقل یک مورد انتخاب شده باشد.

 URL معتبر

کد زیر تایید URL را نشان می دهد:

$email = input($_POST["email"]);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $emailErr = "Invalid format and please re-enter valid email"; 
}

دستورنگارش (syntax) بالا بررسی می کند که آیا یک URL مشخص شده معتبر است یا خیر. این کار باید به برخی از کلمات کلیدی به عنوان مثال https، ftp، www، a-z، 0-9، .. و غیره را اجازه فعالیت دهد.

 ایمیل معتبر

کد زیر نشان دهنده اعتبار آدرس ایمیل است:

$email = input($_POST["email"]);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $emailErr = "Invalid format and please re-enter valid email"; 
}

دستورنگارش (syntax) بالا بررسی می کند که آیا آدرس ایمیل به خوبی شکل گرفته است یا نه. اگر اینطور نیست، یک پیام خطا را نشان می دهد.

 مثال

مثال زیر فرم را با تایید فیلد مورد نظر نشان می دهد:

<html>
   
   <head>
      <style>
         .error {color: #FF0000;}
      </style>
   </head>
   
   <body>
      <?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"]);
               
               // check if e-mail address is well-formed
               if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                  $emailErr = "Invalid email format"; 
               }
            }
            
            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;
         }
      ?>
     
      <h2>Absolute classes registration</h2>
     
      <p><span class = "error">* required field.</span></p>
     
      <form method = "post" action = "<?php 
         echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
         <table>
            <tr>
               <td>Name:</td>
               <td><input type = "text" name = "name">
                  <span class = "error">* <?php echo $nameErr;?></span>
               </td>
            </tr>
           
            <tr>
               <td>E-mail: </td>
               <td><input type = "text" name = "email">
                  <span class = "error">* <?php echo $emailErr;?></span>
               </td>
            </tr>
           
            <tr>
               <td>Time:</td>
               <td> <input type = "text" name = "website">
                  <span class = "error"><?php echo $websiteErr;?></span>
               </td>
            </tr>
            
            <tr>
               <td>Classes:</td>
               <td> <textarea name = "comment" rows = "5" cols = "40"></textarea></td>
            </tr>
            
            <tr>
               <td>Gender:</td>
               <td>
                  <input type = "radio" name = "gender" value = "female">Female
                  <input type = "radio" name = "gender" value = "male">Male
                  <span class = "error">* <?php echo $genderErr;?></span>
               </td>
            </tr>
				
            <td>
               <input type = "submit" name = "submit" value = "Submit"> 
            </td>
				
         </table>
			
      </form>
      
      <?php
         echo "<h2>Your given values are as:</h2>";
         echo $name;
         echo "<br>";
         
         echo $email;
         echo "<br>";
         
         echo $website;
         echo "<br>";
         
         echo $comment;
         echo "<br>";
         
         echo $gender;
      ?>
   
   </body>
</html>

نتایج زیر را تولید می کند:

validation example

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش PHP

Learn PHP

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...