Superglobaler är inbyggda PHP-variabler som är automatiskt tillgängliga i alla scope — de innehåller requestdata, serverinfo, sessioner och mer. De är hur PHP-skript får åtkomst till inkommande HTTP-requestinformation.
Huvudsuperglobalerna
Dessa är tillgängliga överallt (inget global-nyckelord behövs), till skillnad från normala variabler som är scopade till sin funktion.
// 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)
Data från $_GET, $_POST, $_COOKIE, $_REQUEST är opålitlig användarinmatning — att använda den direkt möjliggör SQL-injection, XSS och andra attacker. Validera alltid, använd parametriserade frågor för databaser och escape-skapa utdata.
Superglobaler är grundläggande för PHP-webbutveckling — de är hur skript tar emot HTTP-requestdata (frågesträngar, formulärinlämningar, cookies, sessioner, uppladdade filer, serverinfo), så att förstå dem är väsentlig kunskap för att hantera användarinmatning.
Att veta vad varje superglobal innehåller ($_GET, $_POST, $_SERVER, $_SESSION osv.) och hur man får åtkomst till requestdata är nödvändigt för att bygga någon PHP-applikation.
Men den viktigaste punkten är säkerhet: data från $_GET/$_POST/$_COOKIE/$_REQUEST är opålitlig användarinmatning, och att använda den direkt är rotorsaken till de vanligaste och farligaste webbsårbarheterna (SQL-injection, XSS).
Att förstå att superglobal-requestdata alltid måste valideras, användas säkert (parametriserade frågor för databaser) och escape-skapas vid utdata är kritisk, säkerhetsviktig kunskap — eftersom superglobaler är ingångspunkten för användarinmatning, är felaktig hantering av dem där många allvarliga PHP-säkerhetsbehov uppstår, vilket gör säker hantering av dem till ett grundläggande ansvar för varje PHP-utvecklare. (Moderna ramverk som Laravel omsluter superglobaler i säkrare requestabstraktioner, men den underliggande principen att aldrig lita på inmatning förblir densamma.)