পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি ফিল্টার


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

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

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

  1. Validating data - ডেটাসমূহের গঠন যথাযথ উপায়ে আছে কিনা চেক করে।
  2. Sanitizing data - ডেটাসমূহের মধ্য থেকে যেকোন অপ্রত্যাশিত ক্যারেক্টার সরিয়ে ফেলে।

পিএইচপি ফিল্টার এক্সটেনশন

পিএইচপি ফিল্টারের মাধ্যমে বাহ্যিক ইনপুটগুলোকে ভ্যালিডেট এবং স্যানিটাইজ(sanitize) করা হয়।

পিএইচপি ফিল্টার এক্সটেনশনের মধ্যে ইউজার ইনপুট চেক করার জন্য অনেকগুলো ফাংশন রয়েছে এবং ডেটা ভ্যালিডেশন সহজে এবং দ্রুত করার জন্য এটি ডিজাইন করা হয়েছে।

পিএইচপি ফিল্টার এক্সটেনশনের মাধ্যমে আপনি কি কি সুবিধা পেতে পারেন তা জানার জন্য filter_list() ফাংশনটি ব্যবহার করতে পারেনঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<table>
  <tr>
    <td>ফিল্টার এর নাম</td>
    <td>ফিল্টার আইডি</td>
  </tr>
  <?php
   foreach (filter_list() as $id =>$filter) {
      echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>

</body>
</html>

ফলাফল
ফিল্টার নাম ফিল্টার আইডি
int257
boolean258
float259
validate_regexp272
validate_domain277
validate_url273
validate_email274
validate_ip275
validate_mac276
string513
stripped513
encoded514
special_chars515
full_special_chars522
unsafe_raw516
email517
url518
number_int519
number_float520
magic_quotes521
callback1024

কেন ফিল্টার ব্যবহার করবেন?

অধিকাংশ ওয়েব এপ্লিকেশনেই বাহ্যিক সোর্স থেকে ইনপুট গ্রহন করতে হয়। নিম্নোক্ত উৎস হতে বাহ্যিক ইনপুট/ডেটা আসতে পারেঃ

  • এইচটিএমএল ফরম থেকে ইউজার ইনপুট
  • কুকি
  • সার্ভার ভ্যারিয়েবল
  • ডেটাবেস কুয়েরি থেকে প্রাপ্ত ফলাফল
  • ওয়েব সার্ভিস ডেটা

কেন আপনি বাহ্যিক উৎস হতে প্রাপ্ত ডেটা সর্বদাই ভ্যালিডেট করবেন?
ইনভ্যালিড ডেটা সাবমিট আপনার ওয়েব এপ্লিকেশনে সিকিউরিটি জনিত সমস্যা সৃষ্টি করতে পারে। এমনকি আপনার ওয়েবপেজকে ধ্বংসও করে দিতে পারে!
পিএইচপি ফিল্টার ব্যবহারের মাধ্যমে আপনি আপনার এপ্লিকেশনে সঠিক ইনপুট নিশ্চিত করতে পারেন!


পিএইচপি filter_var() ফাংশন

ডেটা ভ্যালিডেট এবং স্যানিটাইজ একসাথে সম্পন্ন করার জন্য filter_var() ফাংশন ব্যবহার করা হয়।

filter_var() ফাংশনটি একটি নির্দিষ্ট ফিল্টারের মাধ্যমে একক ভ্যারিয়েবলকে ফিল্টার করে।

filter_var এর সিনট্যাক্স

filter_var (variable, filter, options)

প্যারামিটার এর ব্যাখ্যা

  • variable - আবশ্যক। যে ভ্যালুটি আপনি ফিল্টার/চেক করতে চান।
  • filter - ঐচ্ছিক। ফিল্টার এর যে আইডি/টাইপ প্রয়োগ করবেন।
  • options - ঐচ্ছিক। অপশন এর এসোসিয়েটিভ অ্যারে।

Integer ভ্যালিডেশন

নিম্নের উদাহরণে প্রথমে filter_var() ফাংশনের মাধ্যমে $integer ভ্যারিয়েবলটি integer কিনা চেক করবে। যদি $integer ভ্যারিয়েবলটি integer হয় তাহলে আউটপুট হবেঃ " ভ্যালিড ইন্টিজার"। আর যদি $integer ভ্যারিয়েবলটি integer না হয়, তবে আউটপুট হবেঃ "ইন্টিজার ভ্যালিড নয়"।

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$integer = 999;
if (filter_var($integer, FILTER_VALIDATE_INT) !== false) {
    echo(" ভ্যালিড ইন্টিজার  ");
} else {
    echo(" ইন্টিজার ভ্যালিড নয়");
}
?>

</body>
</html>

ফলাফল
 ভ্যালিড ইন্টিজার

filter_var() এবং 0 নিয়ে সমস্যার সমাধান

উপরের উদাহরণে যদি $integer ভ্যারিয়েবলে 0 সেট করা হয় তাহলে ফাংশনটি "ইন্টিজার ভ্যালিড নয়" রিটার্ন করবে। এই সমস্যা সমাধান করার জন্য নিচের উদাহরণটি অনুসরণ করুন।

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$integer = 0;
if (filter_var($integer, FILTER_VALIDATE_INT) === 0 || filter_var($integer, FILTER_VALIDATE_INT) !== false) {
    echo("ভ্যালিড ইন্টিজার");
} else {
    echo("ইন্টিজার ভ্যালিড নয়");
?>

</body>
</html>

ফলাফল
 ভ্যালিড ইন্টিজার  

স্ট্রিং স্যানিটাইজ

নিচের উদাহরণে filter_var() ফাংশন ব্যবহার করে একটি স্ট্রিং থেকে সকল এইচটিএমএল ট্যাগ সরিয়ে ফেলা হয়েছেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$string = "<h1>স্যাট একাডেমীতে আপনাকে স্বাগতম।</h1>";
echo filter_var($string, FILTER_SANITIZE_STRING);
?>

</body>
</html>

ফলাফল
স্যাট একাডেমীতে আপনাকে স্বাগতম।

IP এড্রেস ভ্যালিডেশন

নিচের উদাহরণে filter_var() ফাংশন ব্যবহার করে IP এড্রেস ভ্যালিড কিনা চেক করা হয়েছেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$ip = "192.168.10.10";
if (filter_var($ip, FILTER_VALIDATE_IP) !== false) {
    echo("$ip একটি ভ্যালিড IP এড্রেস");
} else {
    echo("$ip ভ্যালিড IP এড্রেস নয়");
}
?>

</body>
</html>

ফলাফল
192.168.10.10 একটি ভ্যালিড IP এড্রেস

ইমেইল এড্রেস ভ্যালিডেট এবং স্যানিটাইজ করা

নিম্নের উদাহরণে filter_var() ফাংশন এর মাধ্যমে ইমেইল এড্রেস ভ্যালিড কিনা চেক করা হয়েছেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$email = "azizur.rahman@example.com";
// ইমেইল থেকে সকল অপ্রত্যাশিত ক্যারেক্টার দুরা করা
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// ভ্যালিডেট ই-মেইল
if (filter_var($email, FILTER_VALIDATE_EMAIL) !== false) {
    echo("$email একটি ভ্যালিড ইমেইল এড্রেস।");
} else {
    echo("$email ভ্যালিড ইমেইল এড্রেস নয়।");
}
?>

</body>
</html>

ফলাফল
azizur.rahman@example.com একটি ভ্যালিড ইমেইল এড্রেস।

URL স্যানিটাইজ এবং ভ্যালিডেট করা

নিম্নের উদাহরণে filter_var() ফাংশনটি URL থেকে অপ্রত্যাশিত ক্যারক্টারগুলো সরিয়ে ফেলে এবং $url টি ভ্যালিড কিনা চেক করেঃ

উদাহরণ
<!DOCTYPE html>
<html>
<head>
 <title>পিএইচপি ফিল্টার উদাহরণ</title>
</head>
<body>

<?php
$url = "http://www.sattacademy.com";

// URL থেকে সকল অপ্রত্যাশিত ক্যারেক্টার সরিয়ে ফেলে
$url = filter_var($url, FILTER_SANITIZE_URL);

// ভ্যালিড url কিনা চেক করে
if (filter_var($url, FILTER_VALIDATE_URL) !== false) {
    echo("$url একটি ভ্যালিড URL");
} else {
    echo("$url ভ্যালিড URL নয়");
}
?>

</body>
</html>

ফলাফল
http://www.sattacademy.com একটি ভ্যালিড URL