آموزش طراحی وب

راه های فیلتر کردن مقادیر ورودی

در این مقاله آموزشی راه های فیلتر کردن مقادیر ورودی در php آموزش داده می شود .

راه های فیلتر کردن مقادیر ورودی

فصل اول (فیلتر کردن ورودی)

جلسه اول (راه های فیلتر کردن مقادیر ورودی )

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

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

 در این لحظه کل وب سایت حذف میشه . به همین سادگی …

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

 اولین راه حل استفاده از عبارات با قاعده :

مفهوم عبارات باقاعده بالا :

 در عبارت preg_match نام تابعی هست که برای عبارات باقاعده استفاده میشه.

[۰-۹] بدین معنی هست که عبارت موجود در متغییر $month تنها می تونه عدد باشه .

{۱,۲} بدین معنی هست که اعداد فقط می تونن یک یا دو رقمی باشن .

 در عبارت زیر :

 می گیم اگر مقدار ورودی عدد یک یا دو رقمی نبود ، ادامه عملیات قطع بشه و پیغام bad month را بده .

 راه حل دوم استفاده از تابع int هست که بسیار راحت تر از عبارات با قاعده هست . به مثال زیر توجه کنید :

 در این حالت شما نوع داده های ورودی رو به int تبدیل کردید و دیگه مطمئن هستید که مقادیر ورودی حاوی داده ای از نوع int و عدد هستن . در صورتی که بخواین ورودی از نوع numeric باشه باید اون رو با is_numeric() اعتبار سنجی کنید . همچنین با توجه به شرایط می تونید از settype() و sprint() هم استفاده کنید .

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

Ctype_alnum : رشته ورودی رو بررسی می کنه ، و اگر فقط حاوی کاراکتر الفبایی و عددی بود ، true برمیگردونه .

Ctype_alpha : رشته ورودی رو بررسی می کنه ، و اگر فقط حاوی کاراکتر الفبایی بود ، true برمیگردونه.

Ctype_xdigit : رشته ورودی رو بررسی می کنه ، و اگر فقط حاوی hexadecimal بود ، true برمیگردونه.

برای درک بهتر به مثال های زیر توجه کنید :

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

تهیه شده در مدرسه آنلاین ایرانیان

حسین همت یار

نویسنده در مدرسه مجازی ایرانیان ، دانشجوی رشته IT ، طراح وب و علاقه مند به تازه های دنیای اینترنت و وب و البته لینوکس

دیدگاه ۶

    • سلام جناب داستانی
      خیلی ممنون که این مورد رو عنوان کردید ، بله توابع زیادی برای فیلتر کردن ورودی از نوع عددی وجود داره که intval هم یکی از این توابع امنیتی هست .
      موفق و پیروز باشید .

  • سلام
    میشه توضیح بدید الآن این کدی که برای مثال دادی دقیقا چیو نشون میده؟
    هر چی میزنم هیچی نشون نمیده.
    با تشکر

    • سلام دوست عزیز
      مثالی که زده شده همراه با یه ورودیه ، یعنی شما باید ورودی داشته باشی تا خروجی و ببینی ، اگر دقت کنید $_GET هست .
      مثال برای دوستانی هست که روی پروژه این مثال رو پیاده می کنن و میتونن نتیجه رو ببینن .
      موفق باشید .

  • سلام
    اگر بخوایم چک کنه ورودی رو که فقط ایمیل باشه به چه صورت هست؟

    ممنون

آیا سوالی دارید؟

پنل کاربران

بستن
*
*

نظرسنجی

به کدام دسته موضوعی علاقه مند هستید؟

آخرین پرسش و پاسخ ها

اموزش تصادفی

خبرهای باحال دریافت کن

خبرهای باحال دریافت کن

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

ثبت نام انجام شد ، لطفا ایمیلی که براتون ارسال میشه رو تایید کنین