phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Fehlfunktion der PHP-, MySQL-Validierung und Suche funktioniert nicht?

Ihre Variablen wie $fname $lname $gender $age $email $course werden in die if-Bedingung nach der if-Bedingung für isset($_POST['register']) eingefügt . Auch wenn Ihre Validierung funktioniert, werden die Daten weiterhin in die Datenbank eingegeben. weil Sie Bedingung

gesetzt haben

if($fname&&$lname&&$gender&&$age&&$email&&$course)

Jetzt tritt die Steuerung in diesen Block ein, wenn Sie auch nur einen einzigen Wert in all diesen Variablen haben. Was passieren muss, ist, dass Sie falsche Werte eingeben, diese werden validiert, eine Nachricht wird angezeigt, aber wenn der Block zuerst beendet wird, da $_POST-Variablen immer noch einige Werte haben, unabhängig davon, ob sie ungültig sind, zweitens, wenn der Block eingegeben wird und die Abfrage wird ausgelöst.

Was Sie tun können, ist, wo immer Sie eine Fehlermeldung ausgeben, die entsprechende Variable auszublenden. etwa so:

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 = "";
}