সুপারগ্লোবাল হল বিল্ট-ইন PHP ভেরিয়েবল যা প্রতিটি স্কোপে স্বয়ংক্রিয়ভাবে উপলব্ধ — এগুলি রিকোয়েস্ট ডেটা, সার্ভার তথ্য, সেশন এবং আরও অনেক কিছু ধারণ করে। PHP স্ক্রিপ্টগুলি আসন্ন HTTP অনুরোধ তথ্য অ্যাক্সেস করার উপায় এটাই।
মূল সুপারগ্লোবাল
এগুলি সর্বত্র উপলব্ধ (global কীওয়ার্ডের প্রয়োজন নেই), সাধারণ ভেরিয়েবলের বিপরীতে যা তাদের ফাংশনের জন্য স্কোপ করা হয়।
// query parameters and form data
$id = $_GET['id'] ?? null; // ?? provides a default if missing
$username = $_POST['username'] ?? '';
// request info
$method = $_SERVER['REQUEST_METHOD']; // "GET", "POST"
$uri = $_SERVER['REQUEST_URI'];
$ip = $_SERVER['REMOTE_ADDR'];
// ❌ DANGEROUS — using raw input directly enables attacks
$query = "SELECT * FROM users WHERE id = " . $_GET['id']; // SQL INJECTION!
echo $_GET['name']; // XSS!
// ✅ ALWAYS validate, sanitize, and escape user input
$id = (int) $_GET['id']; // cast/validate
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); // parameterized query
echo htmlspecialchars($_GET['name']); // escape for output (prevent XSS)
$_GET, $_POST, $_COOKIE, $_REQUEST থেকে ডেটা অবিশ্বস্ত ব্যবহারকারী ইনপুট — এটি সরাসরি ব্যবহার করা SQL ইনজেকশন, XSS এবং অন্যান্য আক্রমণ সক্ষম করে। সর্বদা ভ্যালিডেট করুন, ডাটাবেসের জন্য প্যারামিটারাইজড কোয়েরি ব্যবহার করুন এবং আউটপুট এসকেপ করুন।
সুপারগ্লোবাল PHP ওয়েব ডেভেলপমেন্টের মৌলিক — এগুলি হল স্ক্রিপ্টগুলি কীভাবে HTTP রিকোয়েস্ট ডেটা গ্রহণ করে (কোয়েরি স্ট্রিং, ফর্ম সাবমিশন, কুকি, সেশন, আপলোড করা ফাইল, সার্ভার তথ্য), তাই যে কোনও ব্যবহারকারীর ইনপুট পরিচালনার জন্য এগুলি বোঝা অপরিহার্য দৈনন্দিন জ্ঞান।
প্রতিটি সুপারগ্লোবাল কী ধারণ করে ($_GET, $_POST, $_SERVER, $_SESSION, ইত্যাদি) এবং কীভাবে রিকোয়েস্ট ডেটা অ্যাক্সেস করতে হয় তা জানা যেকোনো PHP অ্যাপ্লিকেশন তৈরির জন্য প্রয়োজনীয়।
কিন্তু সবচেয়ে গুরুত্বপূর্ণ পয়েন্ট হল সিকিউরিটি: $_GET/$_POST/$_COOKIE/$_REQUEST থেকে ডেটা অবিশ্বস্ত ব্যবহারকারী ইনপুট, এবং সরাসরি এটি ব্যবহার করা সবচেয়ে সাধারণ এবং বিপজ্জনক ওয়েব দুর্বলতার মূল কারণ (SQL ইনজেকশন, XSS)।
সুপারগ্লোবাল রিকোয়েস্ট ডেটা অবশ্যই সর্বদা ভ্যালিডেট করা হয়, নিরাপদে ব্যবহার করা হয় (ডাটাবেসের জন্য প্যারামিটারাইজড কোয়েরি) এবং আউটপুটে এসকেপ করা হয় তা বোঝা সমালোচনামূলক, সিকিউরিটি-অপরিহার্য জ্ঞান — কারণ সুপারগ্লোবাল হল ব্যবহারকারী ইনপুটের প্রবেশ বিন্দু, এগুলি ভুলভাবে পরিচালনা করা অনেক গুরুতর PHP সিকিউরিটি লঙ্ঘনের উৎস, এটি প্রতিটি PHP ডেভেলপারের জন্য একটি মৌলিক দায়িত্ব করে তোলে। (Laravel-এর মতো আধুনিক ফ্রেমওয়ার্ক সুপারগ্লোবালগুলিকে আরও নিরাপদ রিকোয়েস্ট এবস্ট্রাকশনে মোড়ায়, কিন্তু ইনপুটে কখনও বিশ্বাস না করার অন্তর্নিহিত নীতি অপরিবর্তিত থাকে।)