এই অধ্যায়ে আপনি পিএইচপি ফিল্টার এক্সটেনশন এর মাধ্যমে ডেটা ফিল্টার এবং এর মধ্য থেকে আগাছা পরিষ্কার(sanitizing) করা শিখবেন। এটি কিছু কিছু ক্ষেত্রে খুবই সহায়ক, বিশেষকরে ডেটার উৎস যখন আমাদের কাছে অজানা থাকে। উদাহরণস্বরূপঃ এই সকল ডেটা এইচটিএমএল ফরম এর মাধ্যমে আসতে পারে।
পিএইচপি ফিল্টার এর প্রকারভেদ
পিএইচপিতে দুই ধরণের ফিল্টারিং ব্যবহৃত হয়। যেমন-
- Validating data - ডেটাসমূহের গঠন যথাযথ উপায়ে আছে কিনা চেক করে।
- Sanitizing data - ডেটাসমূহের মধ্য থেকে যেকোন অপ্রত্যাশিত ক্যারেক্টার সরিয়ে ফেলে।
পিএইচপি ফিল্টার এক্সটেনশন
পিএইচপি ফিল্টারের মাধ্যমে বাহ্যিক ইনপুটগুলোকে ভ্যালিডেট এবং স্যানিটাইজ(sanitize) করা হয়।
পিএইচপি ফিল্টার এক্সটেনশনের মধ্যে ইউজার ইনপুট চেক করার জন্য অনেকগুলো ফাংশন রয়েছে এবং ডেটা ভ্যালিডেশন সহজে এবং দ্রুত করার জন্য এটি ডিজাইন করা হয়েছে।
পিএইচপি ফিল্টার এক্সটেনশনের মাধ্যমে আপনি কি কি সুবিধা পেতে পারেন তা জানার জন্য filter_list() ফাংশনটি ব্যবহার করতে পারেনঃ
kt_satt_skill_example_id=287
কেন ফিল্টার ব্যবহার করবেন?
অধিকাংশ ওয়েব এপ্লিকেশনেই বাহ্যিক সোর্স থেকে ইনপুট গ্রহন করতে হয়। নিম্নোক্ত উৎস হতে বাহ্যিক ইনপুট/ডেটা আসতে পারেঃ
- এইচটিএমএল ফরম থেকে ইউজার ইনপুট
- কুকি
- সার্ভার ভ্যারিয়েবল
- ডেটাবেস কুয়েরি থেকে প্রাপ্ত ফলাফল
- ওয়েব সার্ভিস ডেটা
কেন আপনি বাহ্যিক উৎস হতে প্রাপ্ত ডেটা সর্বদাই ভ্যালিডেট করবেন?
ইনভ্যালিড ডেটা সাবমিট আপনার ওয়েব এপ্লিকেশনে সিকিউরিটি জনিত সমস্যা সৃষ্টি করতে পারে। এমনকি আপনার ওয়েবপেজকে ধ্বংসও করে দিতে পারে!
পিএইচপি ফিল্টার ব্যবহারের মাধ্যমে আপনি আপনার এপ্লিকেশনে সঠিক ইনপুট নিশ্চিত করতে পারেন!
পিএইচপি filter_var() ফাংশন
ডেটা ভ্যালিডেট এবং স্যানিটাইজ একসাথে সম্পন্ন করার জন্য filter_var() ফাংশন ব্যবহার করা হয়।
filter_var() ফাংশনটি একটি নির্দিষ্ট ফিল্টারের মাধ্যমে একক ভ্যারিয়েবলকে ফিল্টার করে।
filter_var এর সিনট্যাক্স
kt_satt_skill_example_id=288
প্যারামিটার এর ব্যাখ্যা
- variable - আবশ্যক। যে ভ্যালুটি আপনি ফিল্টার/চেক করতে চান।
- filter - ঐচ্ছিক। ফিল্টার এর যে আইডি/টাইপ প্রয়োগ করবেন।
- options - ঐচ্ছিক। অপশন এর এসোসিয়েটিভ অ্যারে।
Integer ভ্যালিডেশন
নিম্নের উদাহরণে প্রথমে filter_var() ফাংশনের মাধ্যমে $integer ভ্যারিয়েবলটি integer কিনা চেক করবে। যদি $integer ভ্যারিয়েবলটি integer হয় তাহলে আউটপুট হবেঃ " ভ্যালিড ইন্টিজার"। আর যদি $integer ভ্যারিয়েবলটি integer না হয়, তবে আউটপুট হবেঃ "ইন্টিজার ভ্যালিড নয়"।
kt_satt_skill_example_id=289
filter_var() এবং 0 নিয়ে সমস্যার সমাধান
উপরের উদাহরণে যদি $integer ভ্যারিয়েবলে 0 সেট করা হয় তাহলে ফাংশনটি "ইন্টিজার ভ্যালিড নয়" রিটার্ন করবে। এই সমস্যা সমাধান করার জন্য নিচের উদাহরণটি অনুসরণ করুন।
kt_satt_skill_example_id=290
স্ট্রিং স্যানিটাইজ
নিচের উদাহরণে filter_var() ফাংশন ব্যবহার করে একটি স্ট্রিং থেকে সকল এইচটিএমএল ট্যাগ সরিয়ে ফেলা হয়েছেঃ
kt_satt_skill_example_id=291
IP এড্রেস ভ্যালিডেশন
নিচের উদাহরণে filter_var() ফাংশন ব্যবহার করে IP এড্রেস ভ্যালিড কিনা চেক করা হয়েছেঃ
kt_satt_skill_example_id=294
ইমেইল এড্রেস ভ্যালিডেট এবং স্যানিটাইজ করা
নিম্নের উদাহরণে filter_var() ফাংশন এর মাধ্যমে ইমেইল এড্রেস ভ্যালিড কিনা চেক করা হয়েছেঃ
kt_satt_skill_example_id=295
URL স্যানিটাইজ এবং ভ্যালিডেট করা
নিম্নের উদাহরণে filter_var() ফাংশনটি URL থেকে অপ্রত্যাশিত ক্যারক্টারগুলো সরিয়ে ফেলে এবং $url টি ভ্যালিড কিনা চেক করেঃ
kt_satt_skill_example_id=297
Read more