Yo intentaria algo asi:
Pseudo Codigo de formulario.php:
Cita: <form action="login.php">
Nombre:<input name="nombre">$mensajeError
Apellido:<input name="apellido">$mensajeError
</form>
Pseudo Codigo de login.php:
Cita: //Compruebo que no venga un campo vacio:
if($_POST[nombre] == "")
{
heacer location: formulario.php?$mensajeError=Complete el Nombre
}
elseif($_POST[apellido] == "")
{
heacer location: formulario.php?$mensajeError=Complete el Apellido
}
else
{
//aca lo que haga el script si todo esta bien.
}
Disculpa que no te escriba el codigo completo, me es muy dificil escribirlo aca.
La idea que que formulario.php, tenga las variables al lado de cada input. Como van a estar vacias la primera ves, no muestra nada.
Si el script que comprueba los datos del formulario encuentra un error, te envia a la pagina del formulario, enviadole los valores de las variables por GET.
Saludos!