Obsoleto. Una vez más: usa variables superglobales, usa $_SERVER['PHP_SELF']
Cita: pierdo la referencia del form, y me sale el alert con los campos que faltan...
Entiendo que manejas un solo archivo y por lo tanto tu formularo "se muestra o no" (según si se ha enviado). Puedes redireccionar después de mostrar ese alert() para que te vuelva a mostrar el formulario. Buscalo en el foro así: tanto como "redireccionar" como "alert".
Comentario al margen: evita manejar un solo archivo, no es recomendable.
Cita: hay alguna manera de hacer la comprobación sin que haga una carga de la pagina? es decir, en el SUBMIT?
Claro, con JavaScript y lo encuentras en las FAQ y buscando en aquel foro. Te lo aseguro; tema común.
Suerte!