ভূমিকা
যেকোনো PHP স্ক্রিপ্টের কিছু প্রিডিফাইনড ভেরিয়েবল অ্যাক্সেসIBLE থাকে। তবে, 그중 অনেকটি ওয়েব সার্ভার সফটওয়্যার, PHP ভার্সন এবং অন্যান্য ফ্যাক্টরের ওপর নির্ভরশীল। কিছু ভেরিয়েবল কমান্ড লাইন মোডে রান করা স্ক্রিপ্টের জন্য উপলব্ধ নয়। $GLOBALS ভেরিয়েবল সব গ্লোবালি উপলব্ধ প্রিডিফাইনড ভেরিয়েবলগুলোর রেফারেন্স সংরক্ষণ করে। অধিকাংশ এই ভেরিয়েবলগুলো phpinfo.php-তে দেখানো হয়। কিছু সাধারণ প্রিডিফাইনড ভেরিয়েবল এখানে ব্যাখ্যা করা হয়েছে।
$_SERVER
এটি একটি অ্যারে ভেরিয়েবল যেটে HTTP হেডার, স্ক্রিপ্ট এবং এনভায়রনমেন্ট সম্পর্কিত ইনফো থাকে। এই অ্যারের কিছু প্রমিনেন্ট মেম্বার—
PHP_SELF — বর্তমানে এক্সিকিউট হচ্ছে স্ক্রিপ্টের ফাইলনেম সংরক্ষণ করে। উদাহরণস্বরূপ, লোকাল সার্ভারের ডকুমেন্ট রুটের test ফোল্ডারে একটি স্ক্রিপ্ট তার পাথ নিচের মত রিটার্ন করে—
উদাহরণ
<?php echo $_SERVER['PHP_SELF']; ?>
আউটপুট
https://localhost/test/testscript.php URL-এ ব্রাউজারে নিচের আউটপুট দেখাবে—
/test/testscript.php
SERVER_ADDR — করেন্ট স্ক্রিপ্ট এক্সিকিউট হচ্ছে সার্ভারের IP অ্যাড্রেস রিটার্ন করে।
SERVER_NAME — করেন্ট স্ক্রিপ্ট এক্সিকিউট হচ্ছে সার্ভার হোস্টের নাম। লোকালি রান করা সার্ভারের ক্ষেত্রে localhost রিটার্ন হয়।
QUERY_STRING — কোয়েরি স্ট্রিং হলো key=value পেয়ারগুলোর স্ট্রিং যা & সিম্বল দিয়ে আলাদা এবং URL-এ ? সিম্বলের পর আপেন্ড করা থাকে। উদাহরণস্বরূপ, https://localhost/testscript?name=xyz&age=20 URL ট্রেইলিং কোয়েরি স্ট্রিং রিটার্ন করে।
REQUEST_METHOD — একটি URL এক্সেস করতে ব্যবহৃত HTTP রিকোয়েস্ট মেথড, যেমন POST, GET, PUT বা DELETE। উপরের কোয়েরি স্ট্রিং উদাহরণে, ? সিম্বল দিয়ে আট্যাচ করা URL GET মেথড দিয়ে পেজ রিকোয়েস্ট করে।
DOCUMENT_ROOT — সার্ভারে কনফিগার করা ডকুমেন্ট রুট ডিরেক্টরির নাম রিটার্ন করে। XAMPP আপাচি সার্ভারে এটি htdocs রিটার্ন করে ডকুমেন্ট রুটের নাম হিসেবে।
C:/xampp/htdocs
HTTP_USER_AGENT — পেজ এক্সেস কর रहे ইউজার এজেন্ট (ব্রাউজার) নির্দেশকারী একটি স্ট্রিং।
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
REMOTE_ADDR — যে মেশিন থেকে ইউজার বর্তমান পেজ দেখছে তার IP অ্যাড্রেস।
SERVER_PORT — ওয়েব সার্ভার যে পোর্ট নম্বরে ইনকামিং রিকোয়েস্ট লিসেন করে। ডিফল্ট ৮০।
$_GET
ডিফল্টভাবে, ক্লায়েন্ট ব্রাউজার HTTP GET মেথড দিয়ে সার্ভারে URL রিকোয়েস্ট পাঠায়। URL-এ আট্যাচ করা কোয়েরি স্ট্রিংে key=value পেয়ার থাকে & সিম্বল দিয়ে কনক্যাটেনেটেড। $_GET অ্যাসোসিয়েটিভ অ্যারে এই কি-ভ্যালু পেয়ারগুলো সংরক্ষণ করে।
ধরে নিই ব্রাউজারে URL হলো https://localhost/testscript?name=xyz&age=20—
উদাহরণ
<?php echo "Name : " . $_GET["name"] . "<br>"; echo "Age : " . $_GET["age"]; ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
Name : xyz Age : 20
$_POST
একটি অ্যাসোসিয়েটিভ অ্যারে যেটে HTTP POST মেথড দিয়ে একটি URL-এ পাস করা কি-ভ্যালু পেয়ার থাকে যা রিকোয়েস্টে URLEncoded বা multipart/form-data কন্টেন্ট-টাইপ ব্যবহার করে।
একটি HTML ফর্ম test.html-এ action=POST স্পেসিফাই করে ডেটা একটি PHP স্ক্রিপ্টে পাঠানো হয়—
<form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type="submit" valaue="submit"> </form>
PHP স্ক্রিপ্টটি নিচের মতো—
উদাহরণ
<?php echo "Name : " . $_POST["name"] . "<br>"; echo "Age : " . $_POST["age"]; ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
Name : xyz Age : 20
$_FILES
এই ভেরিয়েবল একটি অ্যাসোসিয়েটিভ অ্যারে যাতে HTTP POST মেথড দিয়ে আপলোড করা আইটেমগুলো থাকে। ফাইল আপলোড করতে HTTP POST মেথড ফর্ম দরকার যার enctype অ্যাট্রিবিউট multipart/form-data সেট করা থাকে।
<form action="testscript.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" valaue="submit"> </form>
PHP স্ক্রিপ্টে _FILES ভেরিয়েবল নিচের মত অ্যাক্সেস করা হয়—
উদাহরণ
<?php print_r($_FILES); ?>
আউটপুট
Array ( [file] => Array ( [name] => hello.html [type] => text/html [tmp_name] => C:\xampp\tmp\php9647.tmp [error] => 0 [size] => 56 ) )
$_REQUEST
এই ভেরিয়েবল একটি অ্যাসোসিয়েটিভ অ্যারে যা $_GET, $_POST এবং $_COOKIE প্রিডিফাইনড ভেরিয়েবলগুলোর কন্টেন্ট প্রদান করে।
$_SESSION
এই ভেরিয়েবল একটি অ্যাসোসিয়েটিভ অ্যারে যা HTTP সেশনকে রিপ্রেজেন্ট করে।
$_ENV
এনভায়রনমেন্ট ভেরিয়েবলগুলো থেকে এই প্রিডিফাইনড ভেরিয়েবল ফর্ম হয়। এই ভেরিয়েবলগুলো PHP-এর গ্লোবাল নেমস্পেসে ইম্পোর্ট করা হয়।
$_COOKIE
সার্ভার ক্লায়েন্টের কম্পিউটারে কিছু ডেটা কুকি হিসেবে সংরক্ষণ করতে পারে। এই কুকিগুলো প্রতিবার রিকোয়েস্ট করার সময় ট্রান্সমিট হয়। _COOKIE ভেরিয়েবল কুকি ভেরিয়েবল এবং তাদের মানের একটি অ্যাসোসিয়েটিভ অ্যারে।