Valideren

PHP string functies zijn erg nuttig om aan de serverkant formuliergegevens te valideren. Daarbij is de multipass script techniek erg behulpzaam: het maken van een formulier, de validatiecode en de actie in één script. Als het script voor de eerste keer wordt uitgevoerd, verschijnt er een leeg formulier. Als je op de knop drukt, wordt het script opnieuw aangeroepen. Als de data niet correct zijn, wordt het formulier weer getoond (met de gegevens die wel juist zijn, zodat de gebruiker die niet nog een keer hoeft in te vullen) samen met een foutmelding erbij. Als de ingevulde gegevens correct zijn wordt de eigenlijke scriptactie uitgevoerd.

In dit onderdeel laten we zien hoe je kunt controleren of de gegevens in een formulier wel correct zijn ingevuld. We gebruiken daarvoor het bestand formuliervalidatie.php.

De code van het bestand formuliervalidatie.php vind je in het volgende Worddocument:
>> Code: formuliervalidatie.php

Als je het script runt, krijg je een formulier te zien dat er ongeveer zo uitziet:

 

We testen het script door niet alle gegevens in te vullen en vervolgens op “Log in” te klikken. We doen dat door eerst niets in te vullen, vervolgens alleen een naam in te vullen en tot slot alleen het e-mailadres in te vullen. Vul je alleen je naam in dan krijg je bijvoorbeeld de melding dat je nog je e-mailadres moet invullen. Dit is te zien in het onderstaande scherm.


De eerste keer dat het script wordt uitgevoerd, wordt er gecontroleerd of er iets gepost is. Is dit niet het geval, dan krijg je het nog niet ingevulde formulier te zien.

  1. De eerste voorwaarde (bij if) is alleen maar waar als in beide invoervelden de gegevens zijn ingevuld. Let er wel op dat in beide velden ook onzin kan worden ingevuld om het script toch te laten werken.
    if ($naam && $email) { ……… }. Dit resulteert in het bericht: Welkom op onze website …… waarbij op de plaats van de puntjes de op het formulier ingevulde naam wordt weergegeven. De verborgen variabele opnieuw, in de code te zien aan het type = ”hidden”, krijgt de waarde yes toegekend als de Login knop op zijn minst één keer is ingedrukt. <input type="hidden" name="opnieuw" value="yes">
  2. Als de Login knop is ingedrukt en de naam heeft geen waarde dan is de volgende voorwaarde waar:

    if (!$naam && $opnieuw) { ……… }

    Er verschijnt in rood onder het naamvenster een foutmelding dat de naam nog moet worden ingevuld
  3. Als de Login knop is ingedrukt en het e-mailadres is nog niet ingevuld dan is de volgende voorwaarde waar:

    if (!$email && $opnieuw) { ……… }

    Er verschijnt in rood onder het naamvenster een foutmelding dat het e-mailadres nog moet worden ingevuld.
  4. Als bij het aanroepen van het script meteen daarna de Login knop wordt ingedrukt zonder dat er ook maar iets is ingevuld worden beide foutmeldingen weergegeven.