Superglobals बिल्टइन PHP भेरिएबलहरू हुन् जो हरेक स्कोपमा स्वचलित रूपमा उपलब्ध हुन्छन् — तिनीहरूले request डेटा, server जानकारी, sessions, र अन्य कुरा राखेको हुन्छ। यसरी PHP स्क्रिप्टहरूले आउने HTTP request जानकारी प्राप्त गर्छन्।
मुख्य superglobals
यी सर्वत्र उपलब्ध छन् (कुनै global कीवर्ड आवश्यक छैन), सामान्य भेरिएबलको विपरीत जो आफ्नो function मा स्कोप गरिएको हुन्छ।
// 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 बाट आने डेटा अविश्वस्त user input हो — यसलाई सीधै प्रयोग गरेमा SQL injection, XSS, र अन्य आक्रमणहरू सक्षम हुन्छन्। सधैं validate गर्नुहोस्, डेटाबेसको लागि parameterized queries प्रयोग गर्नुहोस्, र output को लागि escape गर्नुहोस्।
Superglobals PHP web development को आधार हुन् — यसरी स्क्रिप्टहरूले HTTP request डेटा (query strings, form submissions, cookies, sessions, uploaded files, server info) प्राप्त गर्छन्, त्यसैले कुनै पनि user input हैन्डल गर्न यसलाई बुझ्नु आवश्यक दैनिक ज्ञान हो।
हरेक superglobal मा के छ ($_GET, $_POST, $_SERVER, $_SESSION, आदि) र request डेटामा कसरी पहुँच गर्ने हो भन्ने कुरा जानिरहनु कुनै पनि PHP अनुप्रयोग बनाउनको लागि आवश्यक छ।
तर सबैभन्दा महत्वपूर्ण बिन्दु सुरक्षा हो: $_GET/$_POST/$_COOKIE/$_REQUEST बाट आने डेटा अविश्वस्त user input हो, र यसलाई सीधै प्रयोग गरेमा सबैभन्दा सामान्य र खतरनाक web vulnerabilities (SQL injection, XSS) को कारण हो।
Syperglobal request डेटा सधैं validate गरिनु, सुरक्षित रूपमा प्रयोग गरिनु (डेटाबेसको लागि parameterized queries), र output मा escape गरिनु पर्छ भन्ने कुरा बुझ्नु critical, security-essential ज्ञान हो — किनकि superglobals user input को entry point हुन्, यसलाई सुरक्षित रूपमा हैन्डल गर्न असफल हुनु धेरै गम्भीर PHP security breaches को उत्पत्ति हो, जसले हरेक PHP डेभलपरको लागि यसलाई सुरक्षित रूपमा हैन्डल गर्नु एक आधारभूत जिम्मेवारी बनाएको छ। (Laravel जस्ता आधुनिक frameworks ले superglobals लाई अधिक सुरक्षित request abstractions मा बेर्छन्, तर input मामा कहिल्यै विश्वास गर्न नदिने आधारभूत सिद्धान्त कायम रहन्छ।)