পিএইচপি গ্লোবাল ভ্যারিয়েবল - PHP Global Variable

পিএইচপির ভার্সন 4.1.0 এ সুপারগ্লোবাল ভ্যারিয়েবলের সূচনা হয়। এই ভ্যারিয়েবলগুলো পিএইচপিতে বিল্ট-ইন থাকার কারণে স্ক্রিপ্ট এর যেকোনো স্কোপ থেকেই এগুলোকে এক্সেস/ব্যবহার করা যায়।


পিএইচপি সুপারগ্লোবাল

পিএইচপি সেট-আপের সময়ই কিছু পূর্ব সংজ্ঞায়িত ভ্যারিয়েবল পিএইচপির সাথে দেওয়া থাকে এগুলোই হচ্ছে পিএইচপির সুপারগ্লোবাল(Super global) ভ্যারিয়েবল।

নাম শুনেই বুঝা যাচ্ছে যে, কোন ধরনের স্কোপ বিবেচনা না করেই এগুলোকে যেকোন স্ক্রিপ্ট বা স্ক্রিপ্ট এর যেকোনো স্থান থেকে ব্যবহার/এক্সেস করা যায়। যেমন- আপনি ইচ্ছা করলে বিশেষ কোনো কিছু ছাড়াই এগুলোকে ফাংশন, ক্লাস, অথবা ফাইল থেকে ব্যবহার করতে পারবেন।

নিম্নে পিএইচপির সুপারগ্লোবাল ভ্যারিয়েবলগুলো উল্লেখ করা হলোঃ

 

$GLOBALS

গ্লোবাল ভ্যারিয়েবলসমূহকে যেকোনো স্কোপ থেকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

$_SERVER

Header, Path এবং Script location সম্মন্ধে বিভিন্ন তথ্য পাওয়ার জন্য এটি ব্যবহৃত হয়।

$_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য এটি ব্যবহৃত হয়।

$_FILES

এটি একটি Two-dimensional associative array। যা ফাইল আপলোড এর সকল তথ্য ধারণ করে।

$_ENV

Environment variable

$_COOKIE

ইউজার সনাক্ত করার জন্য কুকি এক্সেস করতে এটি ব্যবহৃত হয়।

$_SESSION

Session ভ্যারিয়েবলকে এক্সেস করার জন্য এটি ব্যবহৃত হয়।

 

বিঃদ্রঃ সুপারগ্লোবাল ভ্যারিয়েবলসমূহ এসোসিয়েটিভ এ্যারে এসোসিয়েটিভ এ্যারের এলিমেন্ট সমূহ key:value জোড়ায় জোড়ায় থাকে। এসোসিয়েটিভ এ্যারে সম্মন্ধে আরও জানতে পিএইচপি এ্যারে অধ্যায় ভিজিট করুন।

এই অধ্যায়ে কিছু সুপারগ্লোবাল ভ্যারিয়েবল সম্মন্ধে আলোচনা করা হয়েছে। বাকীগুলো সংশ্লিষ্ট অধ্যায়ে আলোচনা করা হবে।


পিএইচপি $GLOBALS

$GLOBALS হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল এবং associative array। যেকোনো স্থান(ফাংশন এবং মেথড এর মধ্য থেকেও) থেকে গ্লোবাল ভ্যারিয়েবলকে এক্সেস করার জন্য $GLOBALS কিওয়ার্ড ব্যাবহার করা হয়।

পিএইচপি সকল গ্লোবাল ভ্যারিয়েবলকে $GLOBALS[index] array এর মধ্যে জমা রাখে। index এর মধ্যে ভ্যারিয়েবলের নাম জমা রাখে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে সুপারগ্লোবাল ভ্যারিয়েবল $GLOBALS কে ব্যবহার করা যায়ঃ

kt_satt_skill_example_id=62

উপরের উদাহরণে, z ভ্যারিয়েবলটি $GLOBALS array এর মধ্যে অবস্থান করার কারণে এটাকে ফাংশনের বাইরে থেকেও এক্সেস করা যাচ্ছে!


পিএইচপি $_SERVER

$_SERVER হচ্ছে পিএইচপি সুপারগ্লোবাল ভ্যারিয়েবল যা header, path এবং script location সম্মন্ধে বিভিন্ন তথ্য ধারণ করে।

নিচের উদাহরণে আমরা দেখবো, কিভাবে $_SERVER ভ্যারিয়েবলকে ব্যবহার করা যায়ঃ

kt_satt_skill_example_id=63

নিচের টেবিলে $_SERVER ভ্যারিয়েবলের মধ্যে ব্যবহৃত অধিকাংশ কনস্ট্যান্ট এর সংক্ষিপ্ত আলোচনা করা হলোঃ

 

$_SERVER['PHP_SELF']

সম্প্রতি যে স্ক্রিপ্ট সম্পাদিত(execution) হয় তার ফাইলের নাম রিটার্ন করে।

$_SERVER['GATEWAY_INTERFACE']

সার্ভার যে কমন গেটওয়ে ইন্টারফেস(CGI) ব্যবহার করে তার ভার্সন রিটার্ন করে।

$_SERVER['SERVER_ADDR']

হোস্ট সার্ভারের IP এড্রেস রিটার্ন করে।

$_SERVER['SERVER_NAME']

হোস্ট সার্ভারের নাম রিটার্ন করে। যেমন- www.sattacademy.com

$_SERVER['SERVER_SOFTWARE']

সার্ভারের জন্য ব্যবহৃত সফটওয়্যার এবং এর ভার্সন রিটার্ন করে। (যেমন- Apache/2.4.25 )

$_SERVER['SERVER_PROTOCOL']

ইনফরমেশন প্রোটোকলের নাম এবং রিভিশন(revision) রিটার্ন করে। (যেমন HTTP/1.1)

$_SERVER['REQUEST_METHOD']

কোনো পেজকে এক্সেস করার জন্য এর রিকুয়েস্ট মেথড(যেমন- POST) রিটার্ন করে।

$_SERVER['REQUEST_TIME']

রিকুয়েস্ট শুরু হওয়ার টাইমস্ট্যাম্প রিটার্ন করে। (যেমন- 1377687496)

$_SERVER['QUERY_STRING']

যদি কোনো পেজ কুয়েরি স্ট্রিং দ্বারা এক্সেস করা হয় তাহলে কুয়েরি স্ট্রিং রিটার্ন করে।

$_SERVER['HTTP_ACCEPT']

বর্তমান রিকুয়েস্ট থেকে Accept header রিটার্ন করে।

$_SERVER['HTTP_ACCEPT_CHARSET']

বর্তমান রিকুয়েস্ট থেকে Accept_Charset header রিটার্ন করে। (যেমন utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST']

বর্তমান রিকুয়েস্ট থেকে Host header রিটার্ন করে।

$_SERVER['HTTP_REFERER']

বর্তমান পেজের সম্পূর্ণ URL রিটার্ন করে (বিশ্বাসযোগ্য নয় কারন সকল user-agents এ সাপোর্ট করে না)

$_SERVER['HTTPS']

স্ক্রিপ্টটি কি সিকিউর HTTP প্রোটোকলের মধ্য দিয়ে কুয়েরি হচ্ছে কিনা?

$_SERVER['REMOTE_ADDR']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই IP এড্রেস রিটার্ন করে।

$_SERVER['REMOTE_HOST']

ব্যবহারকারী যেখান থেকে বর্তমান পেজটি ভিউ করছে সেই Host নাম রিটার্ন করে।

$_SERVER['REMOTE_PORT']

ব্যবহারকারীর ডিভাইস থেকে সার্ভারের সাথে যোগাযোগ(communicate) করার জন্য যে পোর্ট(port) ব্যবহার হচ্ছে সেটিকে রিটার্ন করে।

$_SERVER['SCRIPT_FILENAME']

বর্তমানে যে স্ক্রিপ্টটি এক্সিকিউট হচ্ছে সেটির absolute pathname রিটার্ন করে।

$_SERVER['SERVER_PORT']

যোগাযোগের জন্য ওয়েব সার্ভারের সার্ভার মেশিন যে পোর্ট ব্যবহার করে সেটি রিটার্ন করে। (যেমন 80)

$_SERVER['SERVER_SIGNATURE']

server-generated পেজের সাথে যুক্ত সার্ভার ভার্সন এবং ভার্চুয়াল হোস্ট এর নাম রিটার্ন করে।

$_SERVER['PATH_TRANSLATED']

বর্তমান স্ক্রিপ্টের ফাইল সিস্টেম বেস(base) path রিটার্ন করে।

$_SERVER['SCRIPT_NAME']

কারেন্ট স্ক্রিপ্টের পথ রিটার্ন করে।

$_SERVER['SCRIPT_URI']

কারেন্ট পেজের URI কে রিটার্ন করে।

 


পিএইচপি $_REQUEST

ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST ব্যবহার করা হয়।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য

ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছে। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউটে = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_REQUEST এর মাধ্যমে ডেটা কালেক্ট করতে পারেনঃ

kt_satt_skill_example_id=64


পিএইচপি $_GET

method="get" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ইনপুট ডেটা কালেক্টশন করার জন্য সুপার গ্লোবাল ভ্যারিয়েবল $_GET ব্যবহৃত হয়।

URL এর মধ্য দিয়ে পাঠানো ডেটাও $_GET এর মাধ্যমে কালেক্ট করা যায়।

মনে করুন আপনার এইচটিএমএল পেজে প্যারমিটার সহ হাইপারলিংক আছেঃ

kt_satt_skill_example_id=65

যখন কোনো ইউজার "Test $GET" লিংক এ ক্লিক করে, তখন প্যারামিটার "subject" এবং "web" কে "test_get.php" এর কাছে পাঠানো হয়, এবং এরপরে আপনি "test_get.php" এর মধ্যে $_GET এর সাহায্যে তাদের ভ্যালুগুলোকে এক্সেস করতে পারবেন।

নিচের উদাহরণে "test_get.php"এর মধ্যে ব্যবহৃত কোড দেখানো হলোঃ

kt_satt_skill_example_id=66


পিএইচপি $_POST

method="post" এর মাধ্যমে এইচটিএমএল ফর্ম সাবমিট করার পরে ডেটা কালেক্টশন করার জন্য সুপারগ্লোবাল ভ্যারিয়েবল $_POST ব্যপকভাবে ব্যবহৃত হয়। বিশেষকরে ভ্যারিয়েবল পাস(pass) করানোর জন্য $_POST এর ব্যবহার চোখে পড়ার মত।

নিচের উদাহরণে একটি ইনপুট ফিল্ড ও একটি সাবমিট বাটনসহ একটি ফর্ম দেখা যাচ্ছে। যখন কোনো ইউজার ফর্ম ডেটা সাবমিট করার জন্য "Submit" বাটনে ক্লিক করে, তখন এই ডেটা প্রসেস করার জন্য ট্যাগে action এট্রিবিউট এ নির্দেশিত ফাইলের কাছে পাঠানো হয়।

এই উদাহরণে সাবমিটেড ডেটা প্রসেস করার জন্য এই ফাইলকেই নির্দেশনা দিয়েছি। আপনি চাইলে অন্য ফাইলের মাধ্যমেও ডেটাকে প্রসেস করতে পারেন, শুধু action এট্রিবিউট = চিহ্নের ডান পাশে আপনার ফাইলের নামটি দিয়ে দেন। এরপরে আপনি ইচ্ছা করলে সুপারগ্লোবাল ভ্যারিয়েবল $_POST এর মাধ্যমে ইনপুট ফিল্ডের ডেটা কালেক্ট করতে পারেনঃ

kt_satt_skill_example_id=68

টিপসঃ পিএইচপি Form অধ্যায়ে $_POST and $_GET সম্মন্ধে আরো অধিক আলোচনা করা হয়েছে।

Promotion