পিএইচপি ৫ গ্লোবাল ভেরিয়েবলস (PHP 5 Global Variables – Superglobals)

Superglobals যা কিনা সবসময় অ্যাক্সেস করা যায়। যেকোনো ক্লাস, ফাইল, অথবা ফাংশন এ এই superglobals অ্যাক্সেস করা যায় কোন কিছুর সাহায্য ছারাই।

এই variable গুলো হল

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

 

$GLOBALS

$GLOBALS একটি পিএইচপি এর গ্লোবাল variable যা পিএইচপি script এর যেকোনো জায়গায় গ্লোবাল variables গুলোকে অ্যাক্সেস করতে সাহায্য করে। পিএইচপি সমস্ত গ্লোবাল variable গুলোকে একটি array এর মধ্যে জমা করে $GLOBALS[index]। থার্ড বন্ধনীর মধ্যে লেখা index হল variable এর একটি নাম।

$GLOBALS ব্যবহার করে একটি উদাহরণ


<?php 
 $x = 75; 
 $y = 25;
  
 function addition() { 
     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
 }
  
 addition(); 
 echo $z; 
 ?>

যার ফলাফল হবে ১০০। global array এর মধ্যে একটি variable যা কিনা ফাংশন এর বাইরেও অ্যাক্সেস করা যায়।

 

PHP S_SERVER

$_SERVER পিএইচপি এর একটি সুপার গ্লোবাল variable যা script এর অবস্থান, headers, paths এই বিষয়গুল ধারণ করে।

একটি উদাহরণ যদি লক্ষ্য করি


<?php 
 echo $_SERVER['PHP_SELF'];
 echo "<br>";
 echo $_SERVER['SERVER_NAME'];
 echo "<br>";
 echo $_SERVER['HTTP_HOST'];
 echo "<br>";
 echo $_SERVER['HTTP_REFERER'];
 echo "<br>";
 echo $_SERVER['HTTP_USER_AGENT'];
 echo "<br>";
 echo $_SERVER['SCRIPT_NAME'];
 ?>

 

$_SERVER এর কিছু গুরুত্বপূর্ণ elements

$_SERVER[‘PHP_SELF’] বর্তমানে গণনাকৃত script এর নামটি পেতে এই element ব্যবহার করা হয়।
$_SERVER[‘GATEWAY_INTERFACE’] কমন গেটওয়ে ইন্টারফেস এর version পাওয়ার জন্য ব্যবহার করা হয়
$_SERVER[‘SERVER_ADDR’] host সার্ভার এর IP এড্রেস পাওয়ার জন্য
$_SERVER[‘SERVER_NAME’] host সার্ভার এর নাম পাওয়ার জন্য যেমন www.w3schools.com
$_SERVER[‘SERVER_SOFTWARE’] সার্ভার এর পরিচিতি পাওয়ার জন্য যেমন Apache/2.2.24
$_SERVER[‘SERVER_PROTOCOL’] Information protocol এর নাম পাওয়ার জন্য যেমন HTTP/1.1
$_SERVER[‘REQUEST_METHOD’] এই মেথড পেজ কে অ্যাক্সেস করার জন্য ব্যবহার করা হয়। যেমন post
$_SERVER[‘REQUEST_TIME’] request এর শুরু থেকে timestamp জানার জন্য।
$_SERVER[‘QUERY_STRING’] যদি কোন পেজ query string দ্বারা অ্যাক্সেস হয়ে থাকে তবে তা পাওয়ার জন্য
$_SERVER[‘HTTP_ACCEPT’] বর্তমান request হইতে header কে অনুমোদন করার জন্য
$_SERVER[‘HTTP_ACCEPT_CHARSET’] বর্তমান request হইতে Accept_Charset header পাওয়ার জন্য যেমন utf-8,ISO-8859-1
$_SERVER[‘HTTP_HOST’] বর্তমান request হতে header host পাওয়ার জন্য
$_SERVER[‘HTTP_REFERER’] বর্তমান পেজ এর পুরো url পাওয়ার জন্য
$_SERVER[‘HTTPS’] নিরাপদ HTTP Protocol এর মধ্য দিয়ে কোন script query করার জন্য।
$_SERVER[‘REMOTE_ADDR’] ইউজার এর IP এড্রেস পাওয়ার জন্য
$_SERVER[‘REMOTE_HOST’] ইউজার এর host নাম পাওয়ার জন্য
$_SERVER[‘REMOTE_PORT’] ইউজার এর machine এর পোর্ট নাম্বার পাওয়ার জন্য যা দিয়ে সে ওয়েবসারভার এর সাথে যোগাযোগ করতেছে
$_SERVER[‘SCRIPT_FILENAME’] রানিং script এর সঠিক পাথ নাম পাওয়ার জন্য
$_SERVER[‘SERVER_PORT’] সার্ভার machine এর পোর্ট নাম্বার পাওয়ার জন্য যা ওয়েব সার্ভার এর যোগাযোগ এর ক্ষেত্রে ব্যবহার করা হয়। যেমন ৮০
$_SERVER[‘SERVER_SIGNATURE’] সার্ভার ভারসন এবং virtual hostname পাওয়ার জন্য
$_SERVER[‘PATH_TRANSLATED’] বর্তমান script এর ফাইল সিস্টেম এর পাথ পাওয়ার জন্য
$_SERVER[‘SCRIPT_NAME’] বর্তমান script এর পাথ পাওয়ার জন্য
$_SERVER[‘SCRIPT_URI’] বর্তমান পেজ এর URL পাওয়ার জন্য

PHP $_REQUEST

এইচটিএমএল এর ফর্ম সাবমিট করার পর ডাটা কালেক্ট করার জন্য এই মেথড ব্যবহার করা হয়


<html>
 <body>
 
 <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
   Name: <input type="text" name="fname">
   <input type="submit">
 </form>
 
 <?php
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
     // collect value of input field
     $name = $_REQUEST['fname'];
     if (empty($name)) {
         echo "Name is empty";
     } else {
         echo $name;
     }
 }
 ?>
 
 </body>
 </html>

একটি সাবমিট বাঁটন ও একটি ইনপুট ফিল্ড নিয়ে এই script টি তৈরি করা হয়েছে যখন ইউজার ইনপুট ফিল্ড এ কোন কিছু টাইপ করে সাবমিট করবে সাবমিট করার পর তার টাইপ করা ওয়ার্ড টি সে দেখতে পাবে। আমরা সুপার গ্লোবাল variable হিসেবে $_REQUEST ব্যবহার করতে পারি ইনপুট ফিল্ড থেকে ডাটা কালেক্ট করার জন্য

PHP $_POST

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


<html>
<body>

<form method=”post” action=”<?php echo $_SERVER[‘PHP_SELF’];?>”>
Name: <input type=”text” name=”fname”>
<input type=”submit”>
</form>

<?php
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
// collect value of input field
$name = $_POST[‘fname’];
if (empty($name)) {
echo “Name is empty”;
} else {
echo $name;
}
}
?>

</body>
</html>


একটি সাবমিট বাঁটন ও একটি ইনপুট ফিল্ড নিয়ে এই script টি তৈরি করা হয়েছে যখন ইউজার ইনপুট ফিল্ড এ কোন কিছু টাইপ করে সাবমিট করবে সাবমিট করার পর তার টাইপ করা ওয়ার্ড টি সে দেখতে পাবে। আমরা সুপার গ্লোবাল variable হিসেবে $_POST ব্যবহার করতে পারি ইনপুট ফিল্ড থেকে ডাটা কালেক্ট করার জন্য

PHP $_GET

এই মেথড ব্যবহার করা হয় ফর্ম সাবমিট করার পর ডাটা কালেক্ট করার জন্য এই মেথড ব্যবহার করে Url এর মাধ্যমেও ডাটা কালেক্ট করা যায়। মনে করি আমাদের একটি পেজ আছে যেখানে hyperlink দেওয়া আছে সেই লিঙ্ক থেকে অন্য পেজ এ যাওয়ার মাধ্যমে আমরা url থেকে ডাটা কালেক্ট করব।


<html>
 <body>
 
 <a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>
 
 </body>
 </html>

 

যখন ইউজার লিঙ্ক এ ক্লিক করবে তখন এই পেজ test_get.php এ সে যাবে। তখন ইউজার value অ্যাক্সেস করতে পারবে

উদাহরণ :


 <html>
 <body>
 
 <?php 
 echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
 ?>
 
 </body>
 </html>