Hola:
Te comento el problema que tienes javascript
:
Una validación bien hecha, se hace desde la etiqueta form, con el evento submit (onsubmit) devolviendo false cuando no deba enviarse ese formulario... Tú estás usando el evento click del botón submit (no es lo mismo)
Un formulario bien estructurado tiene un tag form de este tipo:
<form action="destino.php" methos="get/post" onsubmit="return validar(this)"...
Y el botón submit sin validación (si que se puede aprovechar para otras cosas como asignaciones)
Luego la función (siempre javascript) validar... con una instrucción return true/false...
La parte php no la controlo tan bien, pero por ejemplo si quieres un campo "nombre" que no esté vacío:
$n = $_GET["nombre"];// también podría ser $_POST
if ($n == "") header("Location: ". $_SERVER["HTTP_REFERER"]);
Pero es algo más complejo y espero que alguién que sepa más que yo te oriente mejor.
Saludos