dina variabler som $fname $lname $gender $age $email $course
sätts i if condition efter if condition för isset($_POST['register'])
. Nu även om din validering kommer att fungera, kommer data fortfarande att matas in i databasen. eftersom du har satt villkor
if($fname&&$lname&&$gender&&$age&&$email&&$course)
Nu kommer kontroll att gå in i det blocket när du har ett enda värde i alla dessa variabler. Vad som måste hända är att du sätter in fel värden, de blir validerade, meddelande kommer att visas, men när först om blocket avslutas, eftersom $_POST-variabler fortfarande har NÅGOT värde, oavsett om de är ogiltiga, andra om blocket kommer att anges och frågan kommer att avfyras.
Vad du kan göra är att, var du än upprepar felmeddelandet, tömma ut respektive variabel. något sånt här:
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 = "";
}