Invoer van formulieren controleren
Op webpagina's tref je geregeld invulformulieren aan. Via deze formulieren kan de bezoeker van de webpagina informatie doorgeven. Meestal wordt die informatie opgeslagen in een database.
Natuurlijk is het niet de bedoeling, dat een willekeurige bezoeker van een webpagina, door op de verzendknop te drukken, allerlei onzin kan opsturen. Daarom worden er vaak PHP-scripts gebruikt om de inhoud van het formulier te controleren.
Hieronder zie je een invulformulier, dat je kunt gebruiken om je te abonneren op de Citroën nieuwsbrief. Een script controleert of de bezoeker een correct email-adres heeft ingevuld:
In dit digitale practicum bekijken we een paar PHP-scripts, waarmee je invulformulieren kunt beveiligen tegen ongewenste invoer.
Alle scripts, die behandeld worden in de voorbeelden, staan op de cd-rom in de map Blok4 \ PHP_MySQL \ sourcecode \ practicum3.
Om de scripts te kunnen testen moet je de map practicum3 kopiëren naar c:\ webserver \ www \ practicum3.
Om bijvoorbeeld script1.php te testen surf je naar http://localhost / practicum3 / script1.php.
Wordt het script aangeroepen vanuit pagina1.htm dan kun je het script testen door te surfen naar http://localhost / practicum3 / pagina1.htm.
Wordt het script aangeroepen vanuit pagina1.php dan kun je het script testen door te surfen naar http://localhost / practicum3 / pagina1.php.
SCRIPT 1: Geen lege velden accepteren
Dit script controleert of de bezoeker van de webpagina alle verplichte velden van het invulformulier daadwerkelijk heeft ingevuld.
Wanneer een verplicht veld nog leeg is, dan krijgt de bezoeker een waarschuwing te zien. Wanneer het formulier correct is ingevuld, dan krijgt de bezoeker een bevestiging te zien.
Links zie je de HTML-code van het invulformulier, en rechts zie je script 1:
De bezoeker van de webpagina is vergeten om zijn postcode in te vullen.
De tekst 'Je bent vergeten om je postcode in te vullen!' verschijnt:
De bezoeker van de webpagina heeft het formulier correct ingevuld.
Er verschijnt een bevestiging:
SCRIPT 2: Alleen correcte invoer accepteren
Dit script controleert of de bezoeker van de webpagina een correcte postcode (4 cijfers gevolgd door 2 hoofdletters) heeft ingevuld.
Wanneer de postcode niet correct is, dan krijgt de bezoeker een waarschuwing te zien. Wanneer de postcode wel correct is ingevuld, dan krijgt de bezoeker een bevestiging te zien.
Links zie je de HTML-code van het invulformulier, en rechts zie je script 2:
De bezoeker van de webpagina heeft een foute postcode ingevuld.
De tekst 'Je hebt een foute postcode ingevuld!' verschijnt:
SCRIPT 3: Vijandelijke invoer STRIPPEN
Door een formulier te plaatsen op een webpagina, geef je de bezoeker de gelegenheid om ongewenste teksten in te typen en te verzenden
Een bezoeker zou een verwijzing naar een porno-site, of een script waardoor je computer vastloopt, kunnen plaatsen in het formulier.
Het is ongewenst, dat dergelijke tekst in jouw database terecht komt.
In onderstaand voorbeeld tikt de bezoeker van de webpagina als voornaam de tag <table> in. Door deze tekst wordt de uitvoer van script2.php helemaal verbouwd.
Links zie je de (ongewenste) invoer van het invulformulier en rechts het resultaat:
Er zijn een paar standaard PHP-functies beschikbaar, die je kunnen beschermen tegen allerlei ongewenste invoer uit formulieren.
Links zie je weer de HTML-code van het invulformulier, en rechts zie je script 3:
De bezoeker van de webpagina heeft opnieuw als voornaam <table> ingevuld.
De ongewenste invoer wordt keurig verwijderd, en er wordt om een correcte voornaam gevraagd: