In PHP is een superglobale variabele een ingebouwde variabele die altijd beschikbaar is, ongeacht de scope – dat wil zeggen, deze variabelen zijn toegankelijk vanuit elke plek in het script, zonder dat er een expliciete `global` declaratie nodig is. Superglobalen geven gemakkelijk toegang tot variabelen die worden gebruikt voor het verwerken van form data, server data, cookie data, sessie data, en meer. Ze zijn sinds PHP 4.1.0 geïntroduceerd en spelen een cruciale rol in het werken met webapplicaties en server-side scripting.
Er zijn verschillende superglobale variabelen in PHP die vaak worden gebruikt:
1. $\_GET: Deze superglobale variabele wordt gebruikt om gegevens te verzamelen die via een HTTP GET-request worden verzonden. Bijvoorbeeld, als er een URL is zoals `example.com/index.php?name=John`, dan kan de waarde van de variabele `name` worden opgehaald met `$_GET[‘name’]`.
\`\`\`php echo $\_GET[‘name’]; // Output: John \`\`\`1. $\_POST: Dit wordt gebruikt om gegevens te verzamelen die via een HTTP POST-request worden verzonden. Formulieren die met de POST-methode worden verzonden, gebruiken deze superglobale variabele om de verzonden data op te vangen.
\`\`\`php // Stel een formulier voor dat via POST verzendt echo $\_POST[‘username’]; \`\`\`1. $\_SERVER: Deze variabele bevat informatie over headers, paden en scriptlocaties. Veelgebruikte elementen zijn bijvoorbeeld `$_SERVER[‘PHP_SELF’]` om de naam van het huidige script te verkrijgen en `$_SERVER[‘REQUEST_METHOD’]` om de gebruikte methode bij formulariuminzendingen te krijgen (GET of POST).
\`\`\`php echo $_SERVER[‘PHP_SELF’]; // Output: /index.php echo $_SERVER[‘REQUEST_METHOD’]; // Output: POST of GET \`\`\`1. $\_SESSION: Deze superglobale wordt gebruikt om sessievariabelen te bewerken en bevat informatie over de sessie die beschikbaar is voor een specifieke gebruiker tijdens het browsen op een website.
\`\`\`php session\_start(); $\_SESSION[‘user’] = ‘JohnDoe’; echo $\_SESSION[‘user’]; // Output: JohnDoe \`\`\`1. $\_COOKIE: Wordt gebruikt om gegevens te verzamelen die uit HTTP-cookies zijn verzonden. Cookies zijn kleine stukjes data die de server naar de browser kan sturen om daar lokaal op te slaan.
\`\`\`php echo $\_COOKIE[‘user’]; // Output: de waarde van de cookie ‘user‘ \`\`\`1. $\_FILES: Dit wordt gebruikt om gegevens te verzamelen van bestanden die zijn geüpload via een formulier. De variabele biedt onder andere informatie over de naam, het type, de grootte en mogelijke fouten van het bestand.
\`\`\`php echo $\_FILES\[‘file’]\[‘name’]; // Output: de originele naam van het geüploade bestand \`\`\`1. $\_ENV: Deze variabele bevat informatie over de omgeving waarin het script wordt uitgevoerd.
\`\`\`php echo $\_ENV[‘PATH’]; \`\`\`1. $\_REQUEST: Deze bevat gegevens van zowel GET als POST requests, evenals cookie data. Het is handig voor eenvoudige scripts, maar wordt vaak vermeden voor complexere en veiligere applicaties wegens mogelijke veiligheidsrisico’s.
\`\`\`php echo $\_REQUEST[‘username’]; \`\`\`Superglobalen zijn buitengewoon nuttig en veelzijdig, maar het is belangrijk om toegang tot deze variabelen te beveiligen om te voorkomen dat kwaadaardige gebruikers misbruik maken van de ontvangen gegevens. Bijvoorbeeld, altijd data valideren en ontsmetten die van gebruikersinput afkomstig is om SQL-injecties of cross-site scripting (XSS) aanvallen te voorkomen.
Bronnen:
- [PHP Manual – Superglobals](https://www.php.net/manual/en/language.variables.superglobals.php)
- [W3Schools – PHP Superglobals](https://www.w3schools.com/php/php_superglobals.asp)
- [Mozilla Developer Network (MDN) Web Docs – HTTP Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)