آموزش برنامه نویسی ، پایگاه داده sql server
آموزشگاه برنامه نویسی تحلیل داده : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server


آموزشگاه برنامه نویسی مجتمع فنی تهران میرداماد : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server

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

مقدمه :

در راهکارهای قبل ، نحوه کلی اعتبار سنجی و کنترل وارد نمودن مقادیر در فیلدهای یک فرم را بررسی کردیم .
در این بخش به صورت جزیی تر و موردی به نحوه اعتبار سنجی مقادیر وارد شده برای فیلم های Name , Email و URL خواهیم پرداخت .

نحوه اعتبار سنجی کادر Name :

فرض کنید که در یک کادر متن ، می خواهیم کاربر فقط بتواند حروف و یا فاصله خالی وارد کرده و وارد نمودن اعداد و سایر کاراکترها مجاز نباشد .
کد زیر یک راه ساده برای کنترل این مسئله را در اختیارمان قرار می دهد . در ابتدا مقدار ارسال شده از فرم توسط متغیر ["POST["name_$ دریافت شده و در متغیر name$ ریخته می شود .
سپس توسط تابع ( ) Preg_match ، الگوی تعیین شده در تابع مقدار کنترل را سنجیده و چنانچه فقط شامل حروف و یا فاصله خالی باشد ، مقدار true را بر می گرداند . در غیر اینصورت مقدار آن false است .
با false بودن مقدار تابع ( ) Preg_match ، دستور شرطی if کد اجرا شده و یک پیام خطا ، مبنی بر غیر مجاز بودن استفاده از سایر کاراکترها را برای نمایش ثانویه در متغیر nameErr$ دخیره می کند . به کد زیر دفت نمایید :

کد $name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
   {
       $nameErr = "فقط حروف و فاصله خالی مچاز است ";
   }

نکته مهم : تابع ( ) Preg_match ، تابعی است که یک مقدار وارد شده را با الگو یا معیار تعیین شده برای آن مقایسه کرده و مقدار true یا false را بر می گرداند .

نحوه اعتبار سنجی فیلد ایمیل Email :

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

کد $email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
   {
      $emailErr = "آدرس ایمیل نا معتبر است";
   }

نحوه اعتبار سنجی مقدار ورودی در کادر URL :

در مثال زیر نیز کدی را طراحی کرده ایم که همانند مثال های قبل ، از طریق تابع ( ) Preg_match ، مقدار وارد شده در کادر website را بررسی کرده و چنانچه مطابق الگوی صحیح یک آدرس اینترنتی باشد ، آن را قبول کرده و در غیر اینصورت یک پیام خطا را جهت نمایش ثانویه به کاربر در متغیر $websiteErr ذخیره کند .

کد $website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
{
   $websiteErr = "آدرس اینترنتی نا معتبر است";
}

نمایش کامل مثال و مشاهده خروجی صفحه :

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

کد <?php
    // تعیین متغیرهای لازم و قرار دادن آنها بر روی مقدار اولیه خالی
    $nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST")
      {
          if (empty($_POST["name"]))
            {$nameErr = "وارد نمودن نام اجباری است";}
          else
               {
                  $name = test_input($_POST["name"]);
                  // چک کردن اینکه آیا نام وارد شده فقط شامل حروف و فاصله خالی است
                  if (!preg_match("/^[a-zA-Z ]*$/",$name))
                    {
                       $nameErr = " فقط حروق و فاصله خالی مجاز است ";
                    }
               }


    if (empty($_POST["email"]))
        {$emailErr = "وارد نمودن ایمیل اجباری است";}
    else
        {
           $email = test_input($_POST["email"]);
           // چک کردن اینکه آیا ایمیل وارد شده معتبر است
           if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
            {
               $emailErr = " ایمیل وارد شده نا معتبر است";
             }
          }


    if (empty($_POST["website"]))
       {$website = "";}
    else
       {
          $website = test_input($_POST["website"]);
          // چک کردن اینکه آیا آدرس اینترنتی وارد شده دارای ساختار صحیح است
          if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
            {
                $websiteErr = "آدرس اینترنتی وارد شده نا معتبر است";
            }
         }


    if (empty($_POST["comment"]))
         {$comment = "";}
    else
         {$comment = test_input($_POST["comment"]);}

    if (empty($_POST["gender"]))
         {$genderErr = "تعیین جنسیت اجباری است";}
    else
         {$gender = test_input($_POST["gender"]);}

 }
?>
خروجی مشاهده خروجی مثال


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


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

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

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