hola, lo puedes hacer mandando parametros de operacion y luego evaluarlos con un switch, te explico, por ejemplo usar campos hidden en tu form para enviar un parametro que se llamara $accion este parametro puedes enviarlos a la misma pagina pero con distintos valores para que se valla por el camino que quieres, se entiende?
switch($accion){
case "EnvioDatos":
/*
hace las cosas de envio de datos del form y al hacer submit tiene un INPUT de tipo hiden que tiene nombre "accion" y como valor "Validacion"...
*/
case "Validacion":
/*
valida los datos del formulario
si estan bien cambiara el parametro
$accion = "Home" enviandolo como una cabecera con la funcion header() asi:
header("location: pagina.php?accion=Home")
[un poko inseguro pero

]
*/
case "Home":
/*
si los datos estan ok podra hacer otras acciones
*/
}
Ojala que te ayude eso...Suerte!