Non ho capito una cosa. Se imposti i campi obbligatori ed effettui un controllo sui dati inseriti, a cosa ti serve la pagina d'errore?
Comunque puoi usare un javascript. Nell'es campo1 e campo2 accettano qualsiasi carattere, Cap accetta solo numeri, email controlla la presenza di "@" e "." Se vengono inseriti caratteri non validi appare un alert con l'errore e ti riporta al campo con caratteri sbagliati.


<!--
function Modulo() {
var campo1 = document.modulo.campo1.value;
var campo2 = document.modulo.campo2.value;
var Cap = document.modulo.Cap.value;
var Email_Address = document.modulo.Email_Address.value;
var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if ((campo1 == "") || (campo1 == "undefined")) {
alert("Il campo CAMPO1 è obbligatorio.");
document.modulo.campo1.focus();
return false;
}
else if ((campo2 == "") || (campo2 == "undefined")) {
alert("Il campo CAMPO2 è obbligatorio.");
document.modulo.campo2.focus();
return false;
}
else if ((isNaN(Cap)) || (Cap == "") || (Cap == "undefined")) {
alert("Il campo CAP è numerico.");
document.modulo.Cap.value = "";
document.modulo.Cap.focus();
return false;
}
else if (!email_reg_exp.test(Email_Address) || (Email_Address == "") || (Email_Address == "undefined")) {
alert("E-mail non valida.");
document.modulo.Email_Address.select();
return false;
}