Superglobale su ugrađene PHP varijable koje su automatski dostupne u svakom dosegu — sadrže podatke zahtjeva, informacije o serveru, sesije i još mnogo toga. To je način na koji PHP skripte pristupaju dolaznim HTTP zahtjevima.
Glavne superglobale
Ove su dostupne svugdje (nije potrebna global ključna reč), za razliku od normalnih varijabli koje su ograničene na svoje funkcije.
// 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)
Podaci iz $_GET, $_POST, $_COOKIE, $_REQUEST su nepouzdani korisnički unos — korištenje njih direktno omogućava SQL injection, XSS i druge napade. Uvijek validiraj, koristi parametrizirane upite za baze podataka i izbjegavaj izlaz.
Superglobale su temeljne za PHP web razvoj — to je način na koji skripte primaju HTTP zahtjeve (query stringove, slanja formi, kolačiće, sesije, učitane datoteke, informacije o serveru), pa razumijevanje njih je bitno svakodnevno znanje za rukovanje bilo kojim korisničkim unošenjem.
Znanje što svaka superglobala sadrži ($_GET, $_POST, $_SERVER, $_SESSION, itd.) i kako pristupiti podacima zahtjeva je neophodno za izgradnju bilo koje PHP aplikacije.
Ali najvažnija točka je sigurnost: podaci iz $_GET/$_POST/$_COOKIE/$_REQUEST su nepouzdani korisnički unos, a korištenje njih direktno je korijen najčešće i najopasnije web ranjivosti (SQL injection, XSS).
Razumijevanje da podaci superglobala iz zahtjeva uvijek moraju biti validirani, korišteni sigurno (parametrizirani upiti za baze podataka) i izbjegli na izlazu je kritično, sigurnosno bitno znanje — budući da su superglobale ulazna točka za korisnički unos, neispravno rukovanje njima je gdje nastaju mnoge ozbiljne PHP sigurnosne povrede, čineći sigurno rukovanje njima temeljnom odgovornošću svakog PHP razvojnog programera. (Moderni okviri kao Laravel omotavaju superglobale u sigurnije apstrakcije zahtjeva, ali temeljno načelo da se unos nikada ne smije vjerovati ostaje.)