PHP Superglobals Variable পর্ব-২: PHP Get, Post and Request Super Global

এই পর্বে আপনি জানতে পারবেন :

get post

PHP তে $_GET, $_POST, $_REQUEST Superglobals Variable কি ?

HTTP Request GET Method যুক্ত HTML FORM অথবা URL এর মাধ্যমে পাঠানো Data বা তথ্য PHP সার্ভার থেকে Receive বা গ্রহণ করার জন্য $_GET Superglobals variable টি ব্যবহার করা হয়। একই ভাবে HTTP Request POST Method যুক্ত HTML FORM এর পাঠানো Data বা তথ্য Receive বা গ্রহণ করার জন্য $_POST Superglobal Variable টি ব্যবহার করা হয়। আবার FORM (GET এবং POST উভয় Method) অথবা URL এর মাধ্যমে পাঠানো Data বা তথ্য অথবা Browser এ সংরক্ষিত যেকোনো Cookie Variable কে receive বা গ্রহণ করার জন্য $_REQUEST superglobal Variable টি ব্যবহৃত হয়।

Zend Certified PHP Engineering (ZCPE) Course

HTTP Request Method গুলোর মধ্যে GET and POST এর মধ্যে কোনো পার্থক্য আছে ?

হাঁ HTTP Request Method গুলোর মধ্যে GET and POST এর মধ্যে অনেক গুলো পার্থক্য বিদ্যমান , নিচের Table এ সবগুলো পার্থক্য আলোচনা করা হয়েছে :

  • GET Method এর মাধ্যমে পাঠানো data ব্রাউজারে Cache করা যায়।
  • GET Method এর মাধ্যমে পাঠানো data ব্রাউজারের history তে থাকে।
  • GET Method এর মাধ্যমে পাঠানো data বুকমার্ক করা যায়।
  • GET Method এর মাধ্যমে পাঠানো data ব্রাউজারের URL এ দেখা যায়। সুতরাং যেকোনো sensetive বা গোপন তথ্য GET Method এর মাধ্যমে না পাঠানো উচিত।
  • GET Method এর মাধ্যমে বেশি ডাটা পাঠানো যায়না।
  • GET Method তুলনা মূলক POST Method থেকে দ্রুত গতিতে data পাঠাতে পারে।
  • GET Method এর মাধ্যমে সার্ভার এ File Upload করা যায়না।
  • POST Method এর মাধ্যমে পাঠানো data ব্রাউজারে Cache করা যায় না ।
  • POST Method এর মাধ্যমে পাঠানো data ব্রাউজারের history তে থাকে না ।
  • POST Method এর মাধ্যমে পাঠানো data বুকমার্ক করা যায় না ।
  • POST Method এর মাধ্যমে পাঠানো data ব্রাউজারের URL এ দেখা যায় না । সুতরাং যেকোনো sensetive বা গোপন তথ্য POST Method এর মাধ্যমে পাঠানো যেতে পারে ।
  • POST Method এর মাধ্যমে যত ইচ্ছা ডাটা পাঠানো যায়।
  • POST Method তুলনা মূলক GET Method থেকে slow হয় ।
  • POST Method এর মাধ্যমে সার্ভার এ File Upload করা যায়।

কিভাবে $_GET দিয়ে HTML Form এর Data বা তথ্য সার্ভার থেকে Receive বা গ্রহণ করবো ?

$_GET দিয়ে HTML Form এর Data বা তথ্য সার্ভার থেকে Receive বা গ্রহণ করার জন্য নিচের ধাপ গুলো পূরণ করুন :

Zend Certified PHP Engineering (ZCPE) Course

প্রথম ধাপ :

প্রথমে আমরা get.html নামে একটা html form বানাবো যার মেথড হবে get, এবং এই ফাইলটি আমাদের সার্ভার এ test folder এ রাখবো । নিচের কোডটি দেখুন :

<!DOCTYPE html>
<html>
<head>
	<title>HTML Form with Get Method Example</title>
</head>
<body>
<form method="get" action="process.php">
Name:<input type="text" name="name"><br>
Age: <input type="number" name="age"><br>
<input type="submit" name="submit" value="Send">
</form>
</body>
</html>

দ্বিতীয় ধাপ :

এবার আমরা একই ফোল্ডার অর্থাৎ test ফোল্ডারে process.php ফাইলটি নিচের কোড গুলো দিয়ে বানাবো:

<?php  
echo "<pre>";
//print_r($_REQUEST);
//OR
print_r($_GET);
echo "</pre>";
?>

Note:যেহেতু আপনার FORM টির method=”get” দেওয়া সুতরাং আপনি নিমেষেই $_GET অথবা $_REQUEST দুইটির যেকোনো একটি দিয়ে Form এর value receive করতে পারবেন।

তৃতীয় ধাপ :

এইবার আপনার ব্রাউজার এর address বার এ গিয়ে নিচের লিংকটি hit করুন :

http://localhost/test/get.php

ফলাফল নিচের মতো করে দেখাবে :

get method

চতুর্থ ধাপ:

এখন যদি আপনি Form টি পূরণ করে submit করেন, তাহলে আপনি form এর action পেজ অর্থাৎ process.php ফাইল এ আপনার GET মেথড এ পাঠানো input value গুলো পাবেন। এবং get.php file দিয়ে কি কি value যাচ্ছে তা URL এ দেখতে পাবেন। নিচের স্ক্রিনশর্ট লক্ষ্য করুন :

receive value by get method

কিভাবে $_POST দিয়ে HTML Form এর Data বা তথ্য সার্ভার থেকে Receive বা গ্রহণ করবো ?

$_POST দিয়ে HTML Form এর Data বা তথ্য সার্ভার থেকে Receive বা গ্রহণ করার জন্য নিচের ধাপ গুলো পূরণ করুন :

প্রথম ধাপ :

প্রথমে আমরা post.html নামে একটা html form বানাবো যার মেথড হবে get, এবং এই ফাইলটি আমাদের সার্ভার এ test folder এ রাখবো । নিচের কোডটি দেখুন :

<!DOCTYPE html>
<html>
<head>
	<title>HTML Form with Get Method Example</title>
</head>
<body>
<form method="post" action="process2.php">
Name:<input type="text" name="name"><br>
Age: <input type="number" name="age"><br>
<input type="submit" name="submit" value="Send">
</form>
</body>
</html>

Zend Certified PHP Engineering (ZCPE) Course

দ্বিতীয় ধাপ :

এবার আমরা একই ফোল্ডার অর্থাৎ test ফোল্ডারে process2.php ফাইলটি নিচের কোড গুলো দিয়ে বানাবো:

<?php  
echo "<pre>";
//print_r($_REQUEST);
//OR
print_r($_POST);
echo "</pre>";
?>

Note:যেহেতু আপনার FORM টির method=”post” দেওয়া সুতরাং আপনি নিমেষেই $_POST অথবা $_REQUEST দুইটির যেকোনো একটি দিয়ে Form এর value receive করতে পারবেন।

তৃতীয় ধাপ :

এইবার আপনার ব্রাউজার এর address বার এ গিয়ে নিচের লিংকটি hit করুন :

http://localhost/test/post.php

ফলাফল নিচের মতো করে দেখাবে :

post method

চতুর্থ ধাপ:

এখন যদি আপনি Form টি পূরণ করে submit করেন, তাহলে আপনি form এর action পেজ অর্থাৎ process2.php ফাইল এ আপনার POST মেথড এ পাঠানো input value গুলো পাবেন । তবে post.php file দিয়ে কি কি value যাচ্ছে তা URL এ দেখতে পারবেননা । নিচের স্ক্রিনশর্ট লক্ষ্য করুন :

receive value by post method

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

One thought on “PHP Superglobals Variable পর্ব-২: PHP Get, Post and Request Super Global

Leave a Reply