Bisognerebbe vedere come strutturi le richieste, però nel web (per il momento lasciando perdere ajax) in genere avviene questo:
- Pagina html (o php è lo stesso) contenente il form, con action = pippo.php
- Pagina pippo.php riceve in $_POST i dati del form, fa le verifiche e fa il redirect alla pagina php dalla quale sei partito (la pagina php non deve dare nessun output).
Ci sono casi in cui (la maggiorparte) un'unica pagina php fa tutto, e in questo caso se tu hai ad esempio:
index.php
include('header.php'); // pagina che fa output
include('modulochevuoieseguire.php'); // qui controlli lo user e pass che ti arrivano dal form ma non puo fare nessun header perchè la pagina precedente ha già dato un output.
include('footer.php'); // pagina che fa output
L'alternativa è seguire questa strada:
index.php
include('modulo.logica.php'); // questo decide cosa fare, riempie le variabili che ti serviranno per l'output
include('header.php');
include('modulo.output.php'); // in questa pagina crei l'html "mischiato" alle variabili generate in modulo.logica.php
include('footer.php'); // pagina che fa output
A questo punto puoi fare tutti gli header che vuoi nel modulo "logica" senza preoccuparti.
Ciao