Week 5 – Backend Validatie;

In week 5 zorg je dat gebruikersinvoer gecontroleerd wordt op de server.
Je vertrouwt nooit alleen op HTML-validatie.

Wat moet je kennen (samenvatting)

  • Waarom backend validatie nodig is
  • trim() gebruiken
  • empty() controleren
  • strlen() gebruiken voor minimale lengte
  • is_numeric() gebruiken voor getallen
  • exit; gebruiken om uitvoering te stoppen

1. Waarom backend validatie?

Uitleg
HTML-validatie (zoals required) kan worden omzeild.
Daarom controleer je invoer altijd opnieuw in PHP.

Wat moet je kennen

  • Frontend validatie is niet genoeg
  • Server controleert altijd
  • Foute invoer moet worden gestopt
Onthoud:

De server beslist. Niet de browser.

2. Lege velden controleren

Uitleg
Met empty() controleer je of een veld leeg is.
Met trim() verwijder je spaties aan het begin en einde.

Wat moet je kennen

  • trim()
  • empty()
  • exit;

Voorbeeld

$naam = trim($_POST['naam'] ?? '');

if (empty($naam)) {
    echo "Naam is verplicht.";
    exit;
}
Onthoud:

Eerst opschonen (trim()), daarna controleren.

3. Minimale lengte controleren

Uitleg
Soms moet invoer een minimale lengte hebben.
Bijvoorbeeld: minimaal 3 karakters.

Wat moet je kennen

  • strlen()
  • Vergelijken met <

Voorbeeld

if (strlen($naam) < 3) {
    echo "Naam moet minimaal 3 karakters hebben.";
    exit;
}

4. Controleren of iets een getal is

Uitleg
Als een veld een getal moet zijn (bijv. leeftijd), controleer je dit expliciet.

Wat moet je kennen

  • is_numeric()
  • Negatie met !

Voorbeeld

$leeftijd = $_POST['leeftijd'] ?? '';

if (!is_numeric($leeftijd)) {
    echo "Leeftijd moet een getal zijn.";
    exit;
}
Onthoud:

Vertrouw nooit blind op invoer.

Veelgemaakte fouten (kort)

1. Alleen HTML-validatie gebruiken

❌ Alleen required in je form zetten

✅ Altijd ook controleren in PHP

2. trim vergeten

$naam = $_POST['naam'];
$naam = trim($_POST['naam'] ?? '');

3. Geen exit gebruiken

❌ Script gaat door na foutmelding

✅ Gebruik exit; om verdere uitvoering te stoppen

Video

Uitleg volgt hier.