uw variabelen zoals $fname $lname $gender $age $email $course
worden in if-voorwaarde geplaatst na if-voorwaarde voor isset($_POST['register'])
. Zelfs als uw validatie werkt, worden de gegevens nog steeds in de database ingevoerd. omdat je voorwaarde hebt gesteld
if($fname&&$lname&&$gender&&$age&&$email&&$course)
Nu zal de controle dat blok binnengaan als je zelfs maar een enkele waarde in al die variabelen hebt. Wat er moet gebeuren, is dat u verkeerde waarden invoert, deze worden gevalideerd, het bericht wordt weergegeven, maar als het blok is voltooid, hebben $_POST-variabelen nog steeds ENIGE waarde, ongeacht of ze ongeldig zijn, ten tweede als het blok wordt ingevoerd en de vraag wordt afgevuurd.
Wat u kunt doen, is, waar u ook een foutmelding geeft, die respectieve variabele leeg te maken. zoiets als dit:
if (preg_match("/[a-zA-Z ]+$/", $_POST['fname'])) {
$fname = trim($_POST['fname']);
}
else
{
echo '<p>The First name is empty or has illegal characters! To edit please go the link Display Data Information</p>';
$fname = "";
}