ایستگاه های کاری آنلاین OnWorks Linux و Windows

لوگو

میزبانی آنلاین رایگان برای ایستگاه های کاری

<قبلی | فهرست | بعدی>

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

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


مقادیر خالی و کاراکترهای غیر عددی را حذف کنید. انجام این نوع بررسی های برنامه نویسی هر بار که یک برنامه ورودی دریافت می کند، برای محافظت در برابر داده های نامعتبر مهم است. این امر به ویژه برای برنامه هایی که توسط چندین کاربر به اشتراک گذاشته می شوند بسیار مهم است. اگر قرار باشد برنامه ای یکبار و تنها توسط نویسنده برای انجام برخی وظایف خاص استفاده شود، حذف این پادمان ها در راستای منافع اقتصادی ممکن است معذور باشد. حتی در این صورت، اگر برنامه کارهای خطرناکی مانند حذف فایل‌ها را انجام دهد، عاقلانه است که اعتبار داده‌ها را نیز در نظر بگیرید.

در اینجا یک برنامه نمونه داریم که انواع مختلف ورودی را تأیید می کند:



#! / bin / bash

# read-validate: اعتبار ورودی invalid_input () {

echo "ورودی نامعتبر '$REPLY'" >&2 خروج 1

}


خواندن -p "یک مورد را وارد کنید >"


# ورودی خالی است (نامعتبر)

[[ -z $REPLY ]] &&invalid_input


# ورودی چند مورد است (نامعتبر)

(( $(echo $REPLY | wc -w) > 1 )) && invalid_input


# آیا ورودی یک نام فایل معتبر است؟

اگر [[ $REPLY =~ ^[-[:alnum:]\._]+$ ]]; سپس تکرار کنید "$REPLY" یک نام فایل معتبر است."

اگر [[ -e $REPLY ]]; سپس

echo "و فایل "$REPLY" وجود دارد."

دیگر

echo "اما فایل "$REPLY" وجود ندارد."

fi


# آیا ورودی یک عدد ممیز شناور است؟

اگر [[ $REPLY =~ ^-؟[[: رقم:]]*\.[[: رقم:]]+$ ]]; سپس تکرار کنید "$REPLY" یک عدد ممیز شناور است."

دیگر

echo "$REPLY" یک عدد ممیز شناور نیست."

fi


# آیا ورودی یک عدد صحیح است؟

اگر [[ $REPLY =~ ^-؟[[:digit:]]+$ ]]; سپس تکرار کنید "$REPLY" یک عدد صحیح است."

دیگر

echo "$REPLY" یک عدد صحیح نیست."

#! / bin / bash

# read-validate: اعتبار ورودی invalid_input () {

echo "ورودی نامعتبر '$REPLY'" >&2 خروج 1

}


خواندن -p "یک مورد را وارد کنید >"


# ورودی خالی است (نامعتبر)

[[ -z $REPLY ]] &&invalid_input


# ورودی چند مورد است (نامعتبر)

(( $(echo $REPLY | wc -w) > 1 )) && invalid_input


# آیا ورودی یک نام فایل معتبر است؟

اگر [[ $REPLY =~ ^[-[:alnum:]\._]+$ ]]; سپس تکرار کنید "$REPLY" یک نام فایل معتبر است."

اگر [[ -e $REPLY ]]; سپس

echo "و فایل "$REPLY" وجود دارد."

دیگر

echo "اما فایل "$REPLY" وجود ندارد."

fi


# آیا ورودی یک عدد ممیز شناور است؟

اگر [[ $REPLY =~ ^-؟[[: رقم:]]*\.[[: رقم:]]+$ ]]; سپس تکرار کنید "$REPLY" یک عدد ممیز شناور است."

دیگر

echo "$REPLY" یک عدد ممیز شناور نیست."

fi


# آیا ورودی یک عدد صحیح است؟

اگر [[ $REPLY =~ ^-؟[[:digit:]]+$ ]]; سپس تکرار کنید "$REPLY" یک عدد صحیح است."

دیگر

echo "$REPLY" یک عدد صحیح نیست."

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


فی دیگری

echo "رشته "$REPLY" نام فایل معتبری نیست."

fi

فی دیگری

echo "رشته "$REPLY" نام فایل معتبری نیست."

fi


این اسکریپت از کاربر می خواهد که یک مورد را وارد کند. این مورد متعاقباً برای تعیین محتوای آن تجزیه و تحلیل می شود. همانطور که می بینیم، اسکریپت از بسیاری از مفاهیمی که تاکنون پوشش داده ایم، از جمله توابع پوسته، استفاده می کند. [[]], (( ))، اپراتور کنترل

&&، و if، و همچنین دوز سالم عبارات منظم.


برترین سیستم عامل Cloud Computing در OnWorks: