اعتبار سنجی داده ها

اعتبار سنجی داده ها

سایر بخش های سری آموزشی " ایجاد افزونه وردپرس "

در این بخش می خوانید :

 

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

اعتبار سنجی داده چگونه انجام می شود ؟

توابع هسته وردپرس

توابع جاوااسکریپت و پی اچ پی سفارشی

 

 

 

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

اعتبار سنجی داده به معنی بررسی داده های ورودی جهت صحت نوع و مقدار آنها ، قبل از انجام هر کاری به روی آنهاست .

” داده های ورودی” معمولا به داده های ورودی از فرم ها گفته می شود که توسط کاربران ارسال شده اند . اما می توانند از منابع دیگری مانند خوراک RSS ، درخواست های AJAX یا سایر فراخوانی های API نیز باشند .

چند نمونه از اعتبار سنجی را در زیر به شما معرفی می کنیم :

  • بررسی فیلدههای الزامی جهت خالی نبودن
  • بررسی فیلد شماره تلفن جهت وجود فقط کاراکترهای عددی در آن
  • بررسی صحت کد ملی وارد شده توسط فرمول اعتبار سنجی کد ملی
  • بررسی اینکه یک فیلد کمتر از صفر نباشد

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

البته فراموش نکنید که هیچ وقت برای اعتبار سنجی داده های فرم تنها به جاوااسکریپت بسنده نکنید و بعد از ارسال داده های فرم حتماً توسط پی اچ پی در سمت سرور نیز داده ها را پردازش و اعتبار سنجی کنید .

دلیل اینکار این است که ، ممکن است جاوااسکریپت در مرورگر کاربر به صورت عمدی یا سهوی غیر فعال باشد و در این حالت اعتبار سنجی سمت کلاینت با جاوااسکریپت یا جی کوئری انجام نمی شود .

داده هایی که از منابعی بجز فرم به وردپرس ارسال می شوند را باید با پی اچ پی پردازش و اعتبارسنجی کنید .

اعتبار سنجی داده ها چگونه انجام می شود ؟

 حداقل ۳ روش جهت اعتبار سنجی وجود دارد :

  • توابع توکار پی اچ پی
  • توابع هسته وردپرس
  • توابع سفارشی ایجاد شده توسط شما یا هر شخص دیگری

 

توابع توکار پی اچ پی :

Empty() , isset()  برای بررسی اینکه یک متغیر وجود دارد و خالی نیست .

Strlen() , mb_match() جهت بررسی تعداد کاراکترهای یک رشته

Strops() , preg_match() برای موقعیت یابی یک رشته در رشته دیگر

Count() جهت بررسی تعداد عناصر یک آرایه

In_array() جهت بررسی وجود یک شی ( رشته ، عدد و …) در یک آرایه

 

توابع هسته وردپرس :

وردپرس تعدادی تابع مفید را برای اعتبارسنجی انواع مختلف داده را فراهم کرده است .

در اینجا چند نمونه را بررسی می کنیم :

Is_email()  جهت بررسی صحت یک ایمیل

Term_exists()  برای بررسی وجود داشتن یک برچسب ، دسته بندی یا سایر تکسونومی ها

user name_exists()    برای بررسی وجود یا عدم وجود یک نام کاربری

validate_file()  برای بررسی اینکه آیا آدرس فایل وارد شده یک آدرس واقعی است یا خیر ( وجود یا عدم وجود فایل را چک نمی کند .)              .

برای اطلاع از توابع بیشتری در این زمینه کافیست در مخزن وردپرس عبارت هایی مانند *_exists() , *_validata() , is_*()  را جستجو کنید . هر چند که همه این توابع برای اعتبارسنجی بکار نمی روند ، اما خیلی از آنها بسیار مفید هستند ، مخصوصا برای شما که می خواهید افزونه ایجاد کنید .

 

توابع جاوااسکریپت و پی اچ پی سفارشی :

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

زمانی  که یک تابع اعتبار سنجی می نوسیسد ، سعی کنید اسم آن را به صورت سوالی بنویسید مانند is_ir_zipcode,is_phone و…

همچنین سعی کنید تابع شما یک مقدار بولی (false   یا true ) را به عنوان نتیجه برگرداند تا در دستورات شرطی به راحتی از آن استفاده کنید .

در کد زیر توسط یک تابع پی اچ پی مقدار یک فیلد برای اینکه آیا یک کد پستی معتبر است یا خیر بررسی می شود :

function is_us_zipcode( $zipcode ) {
    if ( empty( $zipcode ) ) {
        return false;
    } 
 
    // a zip code should never have more than 10 characters
    if ( 10 <= strlen( trim( $content ) ) ) {
 
        // use a regex to check whether this zip code is correct
        if ( preg_match( '/^\d{5}(\-?\d{4})?$/', $content ) ) {
            return true;
        }
 
    } else {
        return false;
    }
}

 

۱۳۹۴/۶/۱۵ ۱۱:۰۶:۴۵

درباره نویسنده:

هدف ما در تیم راهنمای وردپرس ارائه خدمات به علاقه مندان در حوزه وب و بخصوص وردپرس و در نهایت ایجاد کسب و کار و به ثمر رسیدن ایده های شما دوستان خلاق میباشد.

۴ Comments

  1. محمدیان ۱۱ اسفند ۱۳۹۴ در ۷:۲۰ - پاسخ

    سلام
    بنده می خوام فیلد کد پستی را در کامرس اعتبار سنجی کنم به ده رقم
    کد نویسی بد نیستم راهنمایی می کنید دقیق چکار کنم؟
    ممنون میشم

    • اسماعیل ابراهیمی ۱۱ اسفند ۱۳۹۴ در ۷:۴۰ - پاسخ

      دوست عزیز افزونه خاصی برای اینکار موجود نیست و قطعاً باید کدنویسی اختصاصی انجام بدین
      شما هم که فرمودین برنامه نویسی بلد نیستید
      باید یک نفر افزونه اش رو برای شما ایجاد کنه
      اگر بخوایین تیم ما با هزینه می تونه براتون ایجاد کنه
      برای اینکار تماس بگیرید – شماره بالای سایت هست
      موفق باشید

  2. محمدیان ۱۲ اسفند ۱۳۹۴ در ۱۰:۳۹ - پاسخ

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

    • اسماعیل ابراهیمی ۱۲ اسفند ۱۳۹۴ در ۱۰:۵۱ - پاسخ

      دوست عزیز باور کنید کدش از ۲۰ خط هم بیشتر میشه
      ضمناً اون که گفتم با هزینه انجام میدیم ، فقط یه پیشنهاد بود
      متاسفانه زمانم خیلی محدود هست وگرنه حتماً براتون کدش رو مینوشتم
      موفق باشید

نظر شما چیست