eso es cuestión de tus validaciones de los campos, no se si te has dado cuenta, pero todos los campos solo son validados si no están vacíos! por lo tanto si llegan vacíos no se validan, en tus if debes agregar un else donde agregas un error indicando que están vacíos...
Código PHP:
Ver original if(!preg_match("/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})/", $email)) { $error['email'] = '<div style="color: red;">Enter your correct email address.</div>';
}
}else {
$error['email'] = '<div style="color: red;">Is necessary to indicate an email address.</div>';
}