Comment

PHP প্রসেসিং ফর্ম (Processing Forms)

PHP ফিল্টার_ইনপুট (filter_input() )

Estimated reading: 2 minutes 11 views Contributors

সারাংশ: সারাংশ: এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে PHP filter_input() ফাংশন ব্যবহার করে নাম অনুসারে একটি বাহ্যিক ভেরিয়েবল পেতে এবং ফিল্টার করতে হয়।

PHP filter_input() ফাংশনের ভূমিকা

PHP filter_input() ফাংশন আপনাকে একটি বহিরাগত ভেরিয়েবল এর নামের দ্বারা পেতে এবং এক বা একাধিক বিল্ট-ইন ফিল্টার ব্যবহার করে ফিল্টার করতে দেয়। নিম্নলিখিত filter_input() ফাংশনের সিনট্যাক্স দেখায়:

filter_input ( int $type , string $var_name , int $filter = FILTER_DEFAULT , array|int $options = 0 ) : mixed

filter_input() ফাংশনে নিম্নলিখিত প্যারামিটার রয়েছে:

$type হল INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, এবং INPUT_ENV-এর মধ্যে একটি ৷

$var_name হল ফিল্টার করার জন্য ভেরিয়েবলের নাম।

$filter হল প্রয়োগ করার জন্য ফিল্টার আইডি। এখানে বৈধ ফিল্টার তালিকা আছে. আপনি যদি $filter আর্গুমেন্ট বাদ দেন, filter_input() ফাংশন FILTER_DEFAULT ফিল্টার আইডি ব্যবহার করবে, যা কিছু ফিল্টার করে না।

$options হল একটি সহযোগী অ্যারে যা এক বা একাধিক বিকল্প নিয়ে গঠিত। যখন একটি ফিল্টার বিকল্পগুলি গ্রহণ করে, আপনি এক বা একাধিক পতাকা ব্যবহার করতে পারেন। আপনি যদি একাধিক পতাকা ব্যবহার করতে চান তবে আপনাকে (|) দ্বারা আলাদা করতে হবে।

যেমন, FILTER_SANITIZE_ENCODED | FILTER_SANITIZE_SPECIAL_CHARS

filter_input() ফাংশন নিম্নলিখিত নিয়ম অনুযায়ী নাল, মিথ্যা বা ফিল্টার করা মান প্রদান করে

$var_name সেট না থাকলে, filte_input() ফাংশনটি শূন্য করে দেয়।

ফিল্টার ব্যর্থ হলে, filter_input() ফাংশন মিথ্যা রিটার্ন করে।

অন্যথায়, এটি অনুরোধ করা ভেরিয়েবলের ফিল্টার করা মান প্রদান করে।

PHP ফিল্টার_ইনপুট() ফাংশনের উদাহরণ

নিম্নলিখিত উদাহরণটি একটি অনুসন্ধান ফর্মের জন্য ডেটা স্যানিটাইজ করতে filter_input() ফাংশন ব্যবহার করে:

<?php

$term_html = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_SPECIAL_CHARS);
$term_url = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_ENCODED);

?>
<form action="search.php" method="get">
    <label for="term"> Search </label>
    <input type="search" name="term" id="term" value="<?php echo $term_html ?>">
    <input type="submit" value="Search">
</form>

<?php

if (null !== $term_html) {
	echo "The search result for <mark> $term_html </mark>.";
}

ফর্ম কিভাবে কাজ করে

ফর্মটিতে টাইপ অনুসন্ধান এবং একটি জমা বোতাম সহ একটি ইনপুট রয়েছে ৷

আপনি যখন একটি অনুসন্ধান শব্দ লিখবেন, যেমন, ফিল্টার_ইনপুট ফাংশনটি কীভাবে ব্যবহার করবেন এবং সাবমিট বোতামে ক্লিক করবেন;

ফর্মটি URL-এ ক্যোয়ারী স্ট্রিং শব্দটি যুক্ত করতে GET পদ্ধতি ব্যবহার করে, যেমন,

http://localhost/search.php?term=how+to+use+the+filter_input+function

এই অনুসন্ধান ফর্মটি নিজের কাছে জমা দেয় (search.php)। filter_input() ফাংশন FILTER_SANITIZE_SPECIAL_CHARS এবং FILTER_SANITIZE_ENCODED ফিল্টার ব্যবহার করে অনুসন্ধান শব্দটিকে স্যানিটাইজ করে।

FILTER_SANITIZE_SPECIAL_CHARS ফিল্টার অনুসন্ধান ক্ষেত্রে দেখানোর জন্য একটি মান প্রদান করে এবং FILTER_SANITIZE_ENCODED ফিল্টারটি পৃষ্ঠায় প্রদর্শনের জন্য একটি মান প্রদান করে।

ফিল্টার_ইনপুট বনাম ফিল্টার_ভার

যদি একটি ভেরিয়েবল বিদ্যমান না থাকে, তাহলে filter_input() ফাংশনটি নাল রিটার্ন করে যখন filter_var() ফাংশন একটি খালি স্ট্রিং প্রদান করে এবং একটি অনির্ধারিত সূচকের নোটিশ জারি করে।

ধরুন আপনার কাছে নিম্নলিখিত URL সহ একটি পৃষ্ঠা রয়েছে:

http://localhost/search.php

নিম্নলিখিত filter_input() ফাংশনটি শূন্য প্রদান করে এবং আপনি যখন INPUT_GET থেকে টার্ম ভেরিয়েবল পান তখন কোনো ত্রুটি উত্থাপন করে না:

<?php

$term = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_SPECIAL_CHARS);

var_dump($term);

Output:

NULL

যাইহোক, filter_var() ফাংশন একটি খালি স্ট্রিং প্রদান করে এবং একটি ত্রুটি জারি করে:

<?php

$term = filter_var($_GET['term'], FILTER_SANITIZE_SPECIAL_CHARS);
var_dump($term);

Output:

Notice: Undefined index: term in ...\search.php on line 3
string(0) ""

অতএব, আপনি প্রায়শই isset() বা filter_has_var() ফাংশন ব্যবহার করেন এইভাবে filter_var() ফাংশনে পাস করার আগে একটি ভেরিয়েবল সেট করা আছে কিনা তা পরীক্ষা করতে:

<?php

if (isset($_GET['term'])) {
    $term = filter_var($_GET['term'], FILTER_SANITIZE_SPECIAL_CHARS);
    var_dump($term);
}

এছাড়াও, filter_input() ফাংশন $_GET, $_POST, … সুপারগ্লোবাল ভেরিয়েবলের বর্তমান মান পায় না। পরিবর্তে, এটি HTTP অনুরোধে জমা দেওয়া আসল মানগুলি ব্যবহার করে। উদাহরণ স্বরূপ:

<?php

$_GET['term'] = 'PHP'; // doesn't have any effect on INPUT_GET
$term = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_SPECIAL_CHARS);

var_dump($term);

Output:

NULL

এই উদাহরণটি $_GET[‘term’] ভেরিয়েবলে একটি মান নির্ধারণ করার চেষ্টা করে। যাইহোক, filter_input() বর্তমান $_GET ভেরিয়েবল থেকে শব্দটি পড়ে না। অতএব, স্ক্রিপ্ট NULL প্রদর্শন করে।

<?php

$_GET['term'] = 'PHP';
$term = filter_var($_GET['term'], FILTER_SANITIZE_SPECIAL_CHARS);

var_dump($term);

Output:

string(3) "PHP"

সারসংক্ষেপ

বহিরাগত ভেরিয়েবল থেকে ডেটা স্যানিটাইজ এবং যাচাই করতে PHP filter_input() ফাংশন ব্যবহার করুন।

Leave a Comment

Share this Doc

PHP ফিল্টার_ইনপুট (filter_input() )

Or copy link

CONTENTS

Subscribe

×
Cancel