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

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

 

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

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

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

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

 

 

 

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

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

” داده های ورودی” معمولا به داده های ورودی از فرم ها گفته می شود که توسط کاربران ارسال شده اند . اما می توانند از منابع دیگری مانند خوراک 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;
    }
}