sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

PHP, mal funcionamiento de la validación de MySQL y la búsqueda no funciona?

sus variables como $fname $lname $gender $age $email $course se colocan en la condición if después de la condición if para isset($_POST['register']) . Ahora, incluso si su validación funciona, los datos aún se ingresarán en la base de datos. porque has puesto condición

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

Ahora el control ingresará a ese bloque cuando tenga un solo valor en todas esas variables. Lo que debe estar sucediendo es que usted puso valores incorrectos, esos se están validando, se mostrará un mensaje, pero cuando primero finalice el bloque, como $_POST las variables todavía tienen ALGÚN valor, independientemente de que no sean válidos, segundo si se ingresará el bloque y la consulta será disparada.

Lo que puede hacer es, donde sea que esté haciendo eco del mensaje de error, borre esa variable respectiva. algo como esto:

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