آموزش PHP   >   راهکارهای موثر در PHP > راهکار های کار با فرم ها در PHP
بخش دوم : آموزش کنترل وارد نمودن اطلاعات اجباری توسط کاربر در فرم های PHP

مقدمه :

در راهکار قبلی ، با نحوه طراحی یک فرم ساده HTML آشنا شدید . اما فرم قبلی بسیار ساده و بدون هیچ امکاناتی بود . یکی از ایرادات فرم قبل این بود که کاربر می توانست حتی بدون وارد کردن داده های لازم در فیلد های فرم ، آن را ارسال یا Submit نماید .
به عبارت دیگر کاربر اجباری به پر کردن فیلدهای داده ای نداشت . اما در اکثر اوقات شما نیاز دارید تا کاربر اطلاعاتی را حتما در فیلدهای داده ای وارد نماید . در اینجاست که باید از مکانیزمی استفاده نموده تا آنها را مجبور به وارد نمودن اطلاعات کرده و در غیر اینصورت پیام هشدار صادر می کند .
در این راهکار قصد داریم تا نحوه چک کردن مقادیر ورودی توسط کاربر در فیلدهای فرم و در صورت لازم ، اعلام پیام هشدار به وی را آموزش دهیم .

مثال زیر یک فرم ثبت نام در PHP را نشان می دهد ، که در آن چندین فیلد برای وارد نمودن داده ها ، یک دکمه رادیویی جهت تعیین جنسیت و یک دکمه برای ارسال یا Submit فرم قرار دارد .
در این فرم ، همانطور که در جدول معرفی انواع فیلدهای آن نشان داده شده ، وارد نمودن مقدار برای فیلدهای " Name " و " E-mail " و همچنین انتخاب یک گزینه از جنسیت اجباری است . اما سایر فیلدها می توانند به دلخواه کاربر پر شده یا خالی رها شوند .
به فرم زیر و جدول فیلدهای آن دقت نمایید :

کد <form method="post" action="/php/demo_form_validation_complete.php">
   Name:  <input type="text" name="name" value="">
   <span class="error">* </span>
   <br>
  
E-mail: <input type="text" name="email" value="">
   <span class="error">* </span>
   <br>
  
Website: <input type="text" name="website" value="">
   <span class="error"></span>
   <br>
   Comment: <textarea name="comment" rows="5" cols="40"></textarea>
   <br>
  
Gender: <input type="radio" name="gender" value="female">Female
   <input type="radio" name="gender" value="male">Male <span class="error">* </span>
   <br>
   <input type="submit" name="submit" value="Submit">
</form>
خروجی

PHP Form Example


Name: *

E-mail: *

Website:

Comment:

Gender: Female Male *

نحوه طراحی کد لازم جهت چک نمودن ورودی های کاربر :

کد زیر عملیات چک کردن ورودی های لازم در فیلدهای مورد نظر را انجام داده و در صورت وارد نکردن هر کدام ، یک پیام هشدار صادر می کند .
برای این منظور در ابتدا 4 متغیر NameErr$ و genderErr$ و EmailErr$ و WebsiteErr$ را تعریف کرده ایم . این متغیرها ، برای دریافت و نمایش پیام های هشدار در صورت خالی بودن هر کدام از فیلدهای اجباری به کار می روند .
همچنین به ازای هر متغیر ارسال شده از سوی فرم توسط متد POST ، یک دستور شرطی if طراحی شده که مقدار متغیر را توسط ( ) 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"]);}
     }

?>

نحوه نمایش پیام های هشدار در صورت خالی بودن فیلدهای اجباری در فرم :

در مرحله بعدی ، ما یک قطعه کد اسکریپت را پس از هر فیلد لازم و اجباری به صورت زیر اضافه کرده ، تا در صورت خالی گذاشته شدن آن فیلد توسط کاربر و Submit فرم ، پیام هشدار لازم را به وی اعلام نماید .

کد <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>

     <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>

نکته : اگر هر فیلدی پر شود ، متغیر پیام خطای مربوط به آن خالی بوده و در نتیجه خروجی پیام خطا برای آن فیلد ، نخواهیم داشت .
حال که توانستیم پرکردن فیلدهای اجباری توسط کاربر را کنترل نماییم ، باید به اعتبار سنجی داده های ورودی توسط کاربر بپردازیم .
در مرحله بعد قصد داریم تا شما را با نحوه اعتبار سنجی اطلاعات ورودی توسط کاربر آشنا سازیم . برای مثال فرض کنید ، که کاربر بایستی در یک فیلد آدرس ایمیل وارد نماید . می خواهیم مکانیزمی طراحی کنیم تا بررسی کند ، آیا آدرس ایمیل وارد شده توسط کاربر دارای فرمت صحیح یک ایمیل است یا خیر . اگر ایمیل وارد شده ساختار صحیح نداشت ، به وی پیام هشدار می دهد .



راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه  :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :        
سوال امنیتی : جمع سه + پنج چنده ؟