اسفند
۲
۱۳۹۰

هویت سنجی داده ها قسمت سوم

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

همان طور که میدانید هر کلاس دارای اشیائی است که مشخص کننده فرآیند آن کلاس میباشد .

به همین دلیل قبل از ایجاد این کلاس ابتدا به زبان فارسی این اشیا را معرفی نموده و در ادامه آن را در  نهاد یک کلاس قرار میدهیم . توجه داشته باشید آن طور هم که ممکن است در ذهن شما سخت به نظر برسد اصلا اینطور نیست !

اشیاء این کلاس به شرح زیر میباشند :

  1. -شی تشخیص عدد صحیح
  2. شی تشخیص ایمیل
  3. شی تشخیص url
  4. شی تشخیص آی پی
  5. شی تشخیص اچ تی ام ال ایمن

شاید تنها این ۵ شی یکی از پر کاربرد ترین اشیاء در زمینه هویت سنجی باشد ، اما اشیاء بسیاری در این زمینه وجود دارند که میتواند بسیاری از نیاز های امنیتی شما را پوشش دهد ، بنده به این دلیل این ۵ شی را انتخواب کرده ام چون خیلی پر کاربردند در این زمینه یا حداقل برای خودم اینطورند  !

برای طراحی این کلاس کار پیچیده ای نمیخواهیم بکنیم فقط کافی است که یک به یک نصبت به کار اشیاء زیر توجه کنید و بعد اونها داخل یک کلاس قرار بدید .  میتونم اینطور بیانشون کنم مثل ایجاد ۵ تابع میمونه که داخل یه لفافه ( پوسته ) به نام کلاس validator قرار میگیرند .

توضیح زیادی خوب نیست یه مقدار فکر کنید .

شی زیر کارش چیه دوستان ؟

function is_numeric($val)
    {
        return (bool)preg_match('/^[\-+]?[0-9]*\.?[0-9]+$/', $val);

    }

 

بله این همون به قول خودمون تابع عدد صحیح که طبق قوانین جلسات پیشی ایجاد شده . توی نظرت هر مشکلی باهاش دارید بنویسید .

به همین ترتیب بقیه اشیاء رو هم ایجاد می کنیم :

function is_email($val)
    {
        return (bool)(preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i",
            $val));

    }
function is_url($val)
    {
        return (bool)preg_match("^((((https?|ftps?|gopher|telnet|nntp):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';\/?:@&=+$,A-Za-z0-9])+)([).!';\/?:,][[:blank:]])?$",
            $val);

    }
function is_ipaddress($val)
    {
        return (bool)preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/",
            $val);

    }
function is_htmlsafe($val)
    {
        return (bool)(!preg_match("/<(.*)>.*</$1>/", $val));

    }

 

خوب حالا نظرتون چیه ، میشه ازشون یک کلاس ایجاد کرد ؟ حتما که میشه اونم به راحتی زیر توجه داشته باشید که ما به شی ها بالا یک شی که سازنده خود کلاس است رو هم اضافه میکنیم که نام خود کلاس را در بر خواهد داشت .

<?php
/**
 * @author maheshchari.com
 * @date 11-11-2010
 * @version 1.0 beta
 *
 * --------------------------------------------------------------------------
 * WARNING !
 * This is beta version, future versions might be incompatibile
 * stable relase planned shortly
 * Author doesn't take any responsibility for damage caused by this software.
 * This class provides non UTF-8 validation only,It planned for next version.
 * Please mail me at maheshchari@gmail.com for any suggestions ,bugs .etc
 * --------------------------------------------------------------------------
 */
class validator
{
    /**
     * Checks that a field is exactly the right length.
     * Constructer PHP4
     */

    function validator()
    {

    }
    /**
     * check a number optional -,+,. values
     * @param   string
     * @return  boolean
     */
    function is_numeric($val)
    {
        return (bool)preg_match('/^[\-+]?[0-9]*\.?[0-9]+$/', $val);

    }
    /**
     * valid email
     * @param   string
     * @return  boolean
     */
    function is_email($val)
    {
        return (bool)(preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i",
            $val));

    }
    /**
     * Valid URL or web address
     * @param   string
     * @return  boolean
     */
    function is_url($val)
    {
        return (bool)preg_match("^((((https?|ftps?|gopher|telnet|nntp):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';\/?:@&=+$,A-Za-z0-9])+)([).!';\/?:,][[:blank:]])?$",
            $val);

    }
    /**
     * Valid IP address
     * @param   string
     * @return  boolean
     */
    function is_ipaddress($val)
    {
        return (bool)preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/",
            $val);

    }

    /**
     * given sting has html tags?
     * @param   string
     * @return  boolean
     */
    function is_htmlsafe($val)
    {
        return (bool)(!preg_match("/<(.*)>.*</$1>/", $val));

    }

}
?>

و در نهایت کلاسی که ایجاد شد . به شکل بالاست ، البته بنده کاملا مشخص کردم این کلاس از کجا اومده !

نظر یادتون نره ! 

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

من حسن موحد . از بچگی به چیز های غیر عادی عادت داشتم و همیشه دوست داشتم یه کاری بکنم که کسی به فکر نرسید . و حالا که بزرگ شدم دوست دارم همین نظریم ادامه بدم .

دیدگاهتان را بنویسید

والفا در تویتر

نظر سنجی

به چه چیز هایی بیشتر احتیاج دارید ؟

View Results

Loading ... Loading ...

امار بازدید کنندگان !

افراد آنلاین : 7
ورودی گوگل : 0
تعداد کل مطالب : 294
تبادل لینک با : 5 سایت
بازدید امروز : 32
بازدید دیروز : 434
بازدید این هفته : 2497
بازدید این ماه : 8475
بازدید کل : 236153

خبر نامه !

با وارد کردن ایمیل خود در لیست زیر و انجام مراحل تایید آن در ایمیل خود از خبر ها و پست های جدید ما سریع تر با خبر شوید !

تبلیغات

حامیان