Superglobals
1. Wat zijn superglobals?
2. Hoe roep ik deze op?
3. $_SERVER
4. $_GET
5. $_POST
6. $_COOKIE
7. $_FILES
8. $_SESSION
1. Wat zijn superglobals?
Als je bv. een logbestand wilt maken is het belangerijk dat je een aantal gegevens van de gebruiker weet, anders gezegd: bezoekersinformatie.
Er zijn een hele hoop superglobals: $_POST, $_GET, $_SESSION,...
In deze tut behandelen we alleen gebruikersgegevens.
Elk PHP-script kan deze informatie uit de superglobale array $_SERVER halen. Er zijn verschillende velden in de array, die hier opgesomd staan
Niet alle velden kunnen worden gebruikt, dit is afhankelijk van de server waarop je deze superglobals wilt opvragen.
Het is zeer belangerijk om supergobale arrays te gebruiken wegens een beveiligingsrisico. [ Meer... ]
Zie ook tutorial Variabelen en veiligheid door Joël
2. Hoe roep ik deze op?
Als je bv. de waarde "auth_type" wilt weten, vind je die door de volgende code te gebruiken:
<?php
echo $_SERVER['auth_type'];
?>
|
Of kortweg:
<?=$_SERVER['auth_type'] ?>
|
3. $_SERVER
Hieronder een lijstje met alle superglobals die je kan gebruiken binnen de array $_SERVER
<?php
echo $_SERVER['AUTH_TYPE']; // Type authentactie voor beveiligde pagina's
echo $_SERVER['CONTENT_LENGHT']; // Lengte van de verzonden inhoud in bytes
echo $_SERVER['CONTENT_TYPE']; // Type inhoud, bv. text/html
echo $_SERVER['GATEWAY_INTERFACE']; // Aanduiding van de vereiste interface, bv. CGI/1.1
echo $_SERVER['HTTP_ACCEPT']; // Wat HTTP moet accepteren, meestal */*
echo $_SERVER['HTTP_REFERER']; // Het laatste adres waar de browser vandaan komt
echo $_SERVER['HTTP_USER_AGENT']; // Browser van de bezoeker
echo $_SERVER['PATH_INFO']; // Informatie over het pad naar het script
echo $_SERVER['PATH_TRANSLATED']; // Het fysieke pad op de betreffende computer (vb. wwwroot/sites/sitemasters/index.php)
echo $_SERVER['QUERY_STRING']; // De gegevens in de URL, bv. pagina=tutorials/tutorials&cat=4
echo $_SERVER['REMOTE_ADDR']; // Het IP-adres van de bezoeker, bv. 141.2.68.12
echo $_SERVER['REMOTE_HOST']; // De naam van de client waar de aanvraag van komt
echo $_SERVER['REMOTE_IDENT']; // Indentificator
echo $_SERVER['REMOTE_USER']; // Aanmeldingsnaam van de bezoeker bij een beveiligde site
echo $_SERVER['DOCUMENT_ROOT']; // Webmap van de webserver op de server
echo $_SERVER['PHP_SELF']; // Naam van het PHP-bestand ( in dit geval index.php)
echo $_SERVER['REQUEST_METHOD']; // Het type aanvraag. Bij een normale aanvraag van een pagina is dat GET, bij een formulier POST
echo $_SERVER['SCRIPT_NAME']; // De naam van het aangeroepen script
echo $_SERVER['SERVER_NAME']; // Informatie over de naam van de computer waarop het script wordt uitgevoerd, bv. www.sitemastersbe
echo $_SERVER['SERVER_PORT']; // Serverpoort, bij www is dat meestal 80
echo $_SERVER['SERVER_PROTOCOL']; // Het protocol dat de server gebruikt, bv. HTTP/1.1
echo $_SERVER['SERVER_SOFTWARE']; // Beschrijving van de software op de server
echo $_SERVER['SERVER_SIGNATURE']; // Tekenreeks die enige informatie over de server zelf bevat
?>
|
4. $_GET
$_GET kan je gebruiken om een waarde uit de URL te weten.
Voorbeeld:
De url is ?pagina=tutorials/tutorials&cat=4&id=141
<?php
echo $_GET['pagina']; // Dit zal "tutorials/tutorials" opleveren
echo $_GET['cat']; // Dit zal "4" opleveren
echo $_GET['id']; // Dit zal "141" opleveren
?> |
5. $_POST
Met $_POST kan je de waarden die uit een formulier voortkomen opvragen.
Klik hier voor de Tutorial "Verwerken van formulieren"
6. $_COOKIE
$_COOKIE wordt ondersteund sinds PHP 4.1. In vroegere versies vond je het terug onder $HTTP_COOKIE_VARS
Je kan hiermee de waarden uit een cookie snel en gemakkelijk oproepen:
<?php
echo $_COOKIE['login_cookie']; // Dit zal de gegevens in de logincookie van sitemasters opleveren.
?> |
7. $_FILES
$_FILES is een manier om bestandvelden in formulieren te verwerken. Hieronder een toepassing, waarbij het uploadveldje BESTAND heet.
<?php
echo $_FILES['bestand']['name']; // Hiermee krijg je enkel de bestandsnaam
?>
|
Merk op dat je eerst de veldnaam en dan de waarde wilt weten plaatst (tweedimensionele array). De combinaties zijn:
<?php
echo $_FILES['bestand']['name']; // Oorspronkelijke bestandsnaam
echo $_FILES['bestand']['tmp_name']; // Tijdelijke bestandsnaam
echo $_FILES['bestand']['size']; // Grootte van het bestand
echo $_FILES['bestand']['type']; // Type van het bestand, bv. "image/jpeg"
?>
|
8. $_SESSION
$_SESSION kan je gebruiken om voorgedefinieerde waarden in een sessie op te vragen.
<?php
echo $_SESSION['suser']; // Je Sitemasters-gebruikersnaam
?> |
Meer over sessies vind je in de tutorial "Sessies" van FangorN.
Bron: PHP 5 zonder stress, www.php.net
|