Superglobals ਬਿਲਟ-ਇਨ PHP ਵੇਰੀਏਬਲ ਹਨ ਜੋ ਆਪਣੇ ਆਪ ਹਰ scope ਵਿੱਚ ਉਪਲਬਧ ਹੁੰਦੇ ਹਨ — ਇਹ request ਡੇਟਾ, server ਜਾਣਕਾਰੀ, sessions, ਅਤੇ ਹੋਰ ਕੁਝ ਰੱਖਦੇ ਹਨ। ਇਹ ਉਹ ਤਰੀਕਾ ਹੈ ਜਿਸ ਦੁਆਰਾ PHP ਸਕ੍ਰਿਪਟਸ ਆਉਣਮੁਖੀ HTTP request ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਦੀਆਂ ਹਨ।
ਮੁੱਖ superglobals
ਇਹ ਹਰ ਜਗ੍ਹਾ ਉਪਲਬਧ ਹਨ (global ਕੀਵਰਡ ਦੀ ਲੋੜ ਨਹੀਂ), ਆਮ ਵੇਰੀਏਬਲਾਂ ਦੇ ਉਲਟ ਜੋ ਆਪਣੇ ਫੰਕਸ਼ਨ ਵਿੱਚ scoped ਹੁੰਦੇ ਹਨ।
// 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 injection, XSS, ਅਤੇ ਹੋਰ ਹਮਲੇ ਸਮਰੱਥ ਬਣਦੇ ਹਨ। ਹਮੇਸ਼ਾ ਵੈਲਿਡੇਟ ਕਰੋ, ਡਾਟਾਬੇਸ ਲਈ parameterized queries ਵਰਤੋ, ਅਤੇ ਆਉਟਪੁਟ ਨੂੰ escape ਕਰੋ।
Superglobals PHP ਵੈਬ ਡਿਵੈਲਪਮੇਂਟ ਲਈ ਬੁਨਿਆਦੀ ਹਨ — ਇਹ ਉਹ ਤਰੀਕਾ ਹੈ ਜਿਸ ਦੁਆਰਾ ਸਕ੍ਰਿਪਟਸ HTTP request ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦੀਆਂ ਹਨ (query strings, form submissions, cookies, sessions, uploaded files, server info), ਇਸ ਲਈ ਇਹਨਾਂ ਨੂੰ ਸਮਝਣਾ ਕਿਸੇ ਵੀ ਯੂਜ਼ਰ ਇਨਪੁਟ ਹੈਂਡਲ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹਰ ਰੋਜ਼ ਕੀ ਜਾਣਕਾਰੀ ਹੈ।
ਜਾਣਨਾ ਕਿ ਹਰ superglobal ਕੀ ਰੱਖਦਾ ਹੈ ($_GET, $_POST, $_SERVER, $_SESSION, ਆਦਿ) ਅਤੇ request ਡੇਟਾ ਨੂੰ ਕਿਵੇਂ ਐਕਸੈਸ ਕਰਨਾ ਹੈ, ਕਿਸੇ ਵੀ PHP ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ।
ਪਰ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਨੁਕਤਾ ਸੁਰੱਖਿਆ ਹੈ: $_GET/$_POST/$_COOKIE/$_REQUEST ਤੋਂ ਡੇਟਾ ਗ਼ੈਰ-ਭਰੋਸੇਮੰਦ ਯੂਜ਼ਰ ਇਨਪੁਟ ਹੈ, ਅਤੇ ਇਸ ਨੂੰ ਸਿੱਧੇ ਵਰਤਣਾ ਸਭ ਤੋਂ ਆਮ ਅਤੇ ਖਤਰਨਾਕ ਵੈੱਬ ਕਮਜ਼ੋਰੀਆਂ ਦਾ ਮੂਲ ਕਾਰਣ ਹੈ (SQL injection, XSS)।
is superglobal request ਡੇਟਾ ਹਮੇਸ਼ਾ validate ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਸੁਰੱਖਿਤ ਢੰਗ ਨਾਲ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ (ਡੇਟਾਬੇਸ ਲਈ parameterized queries), ਅਤੇ ਆਉਟਪੁਟ ਉੱਤੇ escape ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਇਹ ਸਮਝਣਾ ਸਮਲੋਚਨਾਤਮਕ, ਸੁਰੱਖਿਆ-ਜ਼ਰੂਰੀ ਜਾਣਕਾਰੀ ਹੈ — ਕਿਉਂਕਿ superglobals ਯੂਜ਼ਰ ਇਨਪੁਟ ਲਈ ਐਂਟਰੀ ਪੁਆਇੰਟ ਹਨ, ਇਹਨਾਂ ਨੂੰ ਗਲਤ ਹੈਂਡਲ ਕਰਨਾ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਬਹੁਤ ਸਾਰੀਆਂ ਗੰਭੀਰ PHP ਸੁਰੱਖਿਆ ਭੰਗ ਉਤਪੰਨ ਹੁੰਦੀਆਂ ਹਨ, ਇਸ ਨੂੰ ਹਰ PHP ਡਿਵੈਲਪਰ ਲਈ ਜ਼ਵਾਬਦੇਹੀ ਅਧਾਰ ਜ਼ਿੰਮੇਵਾਰੀ ਬਣਾਉਂਦਾ ਹੈ। (ਆਧੁਨਿਕ frameworks ਜਿਵੇਂ Laravel superglobals ਨੂੰ ਸੁਰੱਖਿਤ request abstractions ਵਿੱਚ ਲਪੇਟਦੇ ਹਨ, ਪਰ ਇਨਪੁਟ ਉੱਤੇ ਭਰੋਸਾ ਨਾ ਕਰਨ ਦਾ ਬੁਨਿਆਦੀ ਸਿਧਾਂਤ ਕੱਟੜ ਹੈ।)