Usando sólo PHP tienes la opción de que en el script de validación, para comprobar que todo esté lleno hacer algo así:
Código PHP:
$campos_vacios = Array(); //aqui guardamos los que estén vacíos
$c = 0;
foreach($_POST as $key=>$value)
{
if(empty($value))
{
$campos_vacios[$c++]=$key;
}
}
Ahora no estoy seguro de si el postincremento($c++) está permitido en PHP, pero es que estoy acostumbrado al C++ y ahí sí se usa.
Después de esto tendrás todos tus campos vacíos en $campos_vacios, puedes comprobar si hay alguno con un simple count($campos_vacios). Si el valor es mayor que 0 es que hay alguno, entonces puedes hacer un include con tu formulario y manejar el contenido de ese array para indicar cuales están vacíos.
O sea, que en resumen el esquema de validación sería algo como:
Código PHP:
/* validacion */
if($todo_ok)
/* procesamos, todo_ok puede ser lo que sea que sirve para comprobar que todo haya ido bien */
else
{
//proesamos cuando falla algo, y hacemos un include con el formulario, o en todo caso una redirección o lo que se quiera hacer en ese caso
}