|
Je kan op verschillende manieren gegevens invoeren in PHP. Twee manieren om die gegevens op te halen zijn GET en POST.
GET-methode
Het voornaamste gebruik van GET is het gebruik van informatie in de url van de webpagina. Let wel op bij het gebruik van deze methode dat gebruikers de url naar behoren kunnen aanpassen, dus het is niet geschikt voor beveiligings-gegevens met door te sturen.
URL: http://www.webmasterstart.nl/index.php?dag=5&maand=oktober&jaar=2008
<?php
$dag = $_GET['dag'];
$maand = $_GET['maand'];
$jaar = $_GET['jaar'];
echo "De opgegeven datum is " . $dag . " " . $maand . " " . $jaar;
?>
Wat is er gebeurd?
Bij dit voorbeeld surf je naar de opgegeven URL. Op de pagina kan je de gegevens van in de URL bereiken door de 'superglobal' GET op te roepen, dat doe je door $_GET['naam'] op te geven, naam is een string ('naam' is hetzelfde als "naam"), in dit voorbeeld dus dag, maand en jaar. De datum steek ik dus in variabelen, en die echo ik dan om de opgegeven datum weer te geven op het scherm.
POST-methode
Het voornaamste gebruik van POST is het versturen van formulieren. POST is veiliger dan GET, omdat men enkel de gegevens kan aanpassen in het formulier, en nadien niet meer. Dit is dus een veiligere manier om belangrijke gegevens door te sturen.
<form action="" method="post">
<input type="text" name="loginnaam" />
<input type="submit" name="submit" value="Waarde" />
</form>
<?php
$loginnaam = $_POST['loginnaam'];
echo "Welkom " . $loginnaam;
?>
Wat is er gebeurd?
Hierbij vul je een formulier in, dat formulier wordt naar de server verzonden, de server analyseert de gegevens, en geeft de variabele loginnaam de waarde van het tekstvak mee. Hier maak ik gebruik van de superglobal POST. Het ophalen van de gegevens is exact hetzelfde als het ophalen van GET-gegevens. Daarna laat ik de loginnaam weergeven op het scherm.
REQUEST-methode
Een derde methode, die minder vaak gebruikt wordt, is de superglobal REQUEST. Je haalt net als POST en GET de gegevens op, maar een REQUEST kan zowel POST als GET gegevens ophalen. Dit wordt minder vaak gebruikt, omdat dit een groot veiligheidslek kan betekenen voor loginsystemen.
Voorbeeld
GET:
URL: fotogallerij.php?foto=logo
<img src="/<?= $_GET['foto']; ?>.jpg" />
Dit is een voorbeeld van een simpele fotogallerij. Je haalt de naam van de foto op via de superglobal GET, en gebruikt die om de src van een img-tag aan te passen. Zo verkrijg je in het voorbeeld een afbeelding van het bestand logo.jpg. De notatie = ?> is een korte notatie voor snel iets te echo'en.
POST:
<form method="post" action="berekenen.php">
<input type="text" name="getal1" />
<input type="text" name="getal2" />
<input type="submit" name="submit" value="Optellen" />
</form>
berekenen.php:
<?php
$som = $_POST['getal1'] + $_POST['getal2'];
echo "De som van " . $_POST['getal1'] . " en " . $_POST['getal2'] . " is " . $som . ".";
?>
Hier zie je een simpel voorbeeld van een rekenmachine gemaakt van PHP. Je geeft 2 getallen in, het formulier verwijst naar berekenen.php, waar de POST-gegevens worden verwerkt (in dit geval opgeteld) en weergegeven.
Wat hebben we vandaag geleerd?
- Via de superglobal GET kan je informatie uit een URL halen
- Via de superglobal POST kan je informatie uit formulieren halen
- POST is veiliger dan GET omdat men geen informatie kan aanpassen
- REQUEST is een manier om zowel POST- als GET-gegevens op te vangen.
Ga naar het volgende deel van de PHP basiscursus : Basiscursus PHP 5/12 : PHP Operatoren
Auteur : Skwizz
|