Formulieren verwerken

Hieronder een simpel script dat de resultaten van de formulieren verzamelt en afdrukt in een tabel. Dat script ziet er zo uit:

<HTML><HEAD><TITLE>Form output tester</TITLE></HEAD><BODY>

<TABLE BORDER="1" CELLPADDING="3">
<TR><TD><B>Name / Naam</B></TD><TD><B>Value / Waarde</B></TD></TR>

<?php
   foreach ( $_POST as $i => $j ) {
      $i =substr(strip_tags($i), 0, 20);
      $j =substr(strip_tags($j), 0, 255);
      // print each line
      print "<TR><TD>$i</TD><TD>$j</TD></TR>";
   }
?>

</TABLE>

<P><A HREF="" onClick="self.close()">Close window / Sluit venster</A></P>

</BODY></HTML>

Het script maakt gebruik van de voorgedefinieerde variabele $_POST. $_POST is een reeks. Als een formulier gebruik maakt van een METHOD="post" attribuut, stopt PHP alle invoer van dat formulier in de reeks $_POST. Bijvoorbeeld, als je een tekstveld hebt wat "e-mail" heet, vind je de invoer terug in $_POST['e-mail'].

Omdat $_POST een reeks is, kun je de foreach structuur gebruiken om de inhoud van de reeks op te halen. foreach neemt een voor een de waarden in $_POST en, in het bovenstaande vooorbeeld, stopt de naam van de waarde in $i en de waarde zelf in $j. Hierdoor is het script flexibel en haalt alle invoer uit het formulier ongeacht hoeveel velden er zijn en hoe die heten.

Het script gebruikt twee ingebouwde PHP functies voor beveiliging. De strip_tags() functie verwijderd alle PHP en HTML elementen. Daarmee voorkom je dat kwaadwillende gebruikers scripts of riskante HTML elementen in het formulier verwerken.

De tweede veiligheidsmaatregel is het beperken van de lengte van de invoer met de substr() functie. Deze functie vraagt drie argumenten. De eerste is een tekst, de tweede het beginpunt en de derde is een getal wat de lengte aangeeft van de tekst die je over wilt houden. Bij het beginpunt is 0 het eerste karakter van de tekst. $i wordt dus beperkt tot 20 tekens en $j tot een maximum van 255 tekens. Je kunt in dit voorbeeld ook zien dat je probleemloos functies binnen functies kunt gebruiken.

Tenslotte gebruikt dit script de print functie. Je kunt hier zien hoe de twee variabelen midden in een tekst gebruikt kunnen worden en toch goed printen.

Dit is een heel eenvoudig voorbeeld van het verwerken van formulieren. In de praktijk zul je vaak de ingevoerde gegevens willen controleren, bijvoorbeeld om te zien of alle verplichte velden ingevuld zijn. In de meest gevallen wil je de invoer ook verwerken, bijvoorbeeld opslaan in een database of per e-mail versturen.

Was dit antwoord nuttig?

 Print dit artikel

Lees ook

PHP instellingen aanpassen

Dit kun je doen in de/conf directory van het domein (dus /srv/www/vhosts/domeinnaam.nl/conf)Dan...

Beveiligen formulier tegen Spammers

Websites waarvan de contactformulieren misbruikt worden controleren niet goed op de door de...

open Basedir restricties

De Open BaseDir restrictions zijn ingesteld om de bestandsbeveiliging van de server en de...

Het gebruik van variabele

Om de waarde van variabele over te dragen van het ene script naar het andere script dient u in...