De formulier data wordt nu opgeslagen in de database. We hebben echter totaal geen validatie of opschoning geregeld. Onze code accepteert dus alles wat in het formulier ingevuld wordt, en is daarmee erg vatbaar voor cross site scripting en SQL injectie. We moeten eea dus gaan beveiligen, dit doen we door de ingevulde data op te schonen en te valideren. We passen daarom de method ledenRegistratie aan en valideren op lege velden, geldige email adressen en eventuele verboden tekens. Verder gebruiken we de mysqli real escape string functie om eventuele gevaarlijke tekens om te zetten naar iets onschuldigs. db->real_escape_string($_POST['naam']),FILTER_SANITIZE_STRING); $gebruikersnaam = filter_var($this->db->real_escape_string($_POST['gebruikersnaam']),FILTER_SANITIZE_STRING); $email = filter_var($this->db->real_escape_string($_POST['email']),FILTER_SANITIZE_STRING); $sql = "INSERT INTO leden(naam,gebruikersnaam,email) VALUES('".$naam."','".$gebruikersnaam."','".$email."');"; if(empty($naam) || empty($gebruikersnaam) || empty($email)) { $registermsg = 'Niet alle verplichte velden zijn ingevuld'; return $registermsg; } elseif(!filter_var($email,FILTER_VALIDATE_EMAIL)) { $registermsg = 'U heeft geen geldig email adres ingevuld'; return $registermsg; } elseif(!preg_match('/^[a-zA-Z 0-9]*$/',$naam) || !preg_match('/^[a-z]*$/',$gebruikersnaam)) { $registermsg = 'De velden naam of gebruikersnaam bevatten ongeldige tekens'; return $registermsg; } else { $this->db->query($sql); $registermsg = 'De gegevens zijn opgeslagen'; return $registermsg; } } ?> Met onderstaande code in het formulier, kunnen we meldingen vanuit de method ledenRegistratie tonen in het formulier.