পিএইচপি ফিল্টার (Filter)

এডভান্স পিএইচপি (Advance PHP) - পিএইচপি প্রোগ্রামিং (PHP Programming) - Computer Programming

242

এই অধ্যায়ে আপনি পিএইচপি ফিল্টার এক্সটেনশন এর মাধ্যমে ডেটা ফিল্টার এবং এর মধ্য থেকে আগাছা পরিষ্কার(sanitizing) করা শিখবেন। এটি কিছু কিছু ক্ষেত্রে খুবই সহায়ক, বিশেষকরে ডেটার উৎস যখন আমাদের কাছে অজানা থাকে। উদাহরণস্বরূপঃ এই সকল ডেটা এইচটিএমএল ফরম এর মাধ্যমে আসতে পারে।

পিএইচপি ফিল্টার এর প্রকারভেদ

পিএইচপিতে দুই ধরণের ফিল্টারিং ব্যবহৃত হয়। যেমন-

  1. Validating data - ডেটাসমূহের গঠন যথাযথ উপায়ে আছে কিনা চেক করে।
  2. 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

 

Content added || updated By
Promotion

Are you sure to start over?

Loading...