ho un pagina dinamica così schematizzata:
Codice PHP:
if (!session) session start;
/*
inizio include di un file. diverse di queste pagine possono
produrre messaggi d'errore che vengono raccolti nella session
*/
include(file) {
if (form submit) {
//codice della pagina...
if (errori) session['msg'] .= "messaggio d'errore";
header (questa pagina);
/*
voglio prevenire l'esecuzione del codice sottostante
se ci sono stati errori nella prima parte.
...altro codice...
*/
if(tutto ok) {
session['msg'] .= "tutto ok";
header(questa pagina ma con include differente);
}
}
} // fine include
if (session['msg']!==""){
echo session['msg'];
session['msg']="";
}
stranamente l'echo alla fine della pagina non mostra nulla e session['msg'] risulta vuota. accade lo stesso utilizzando un cookie.
se però commento gli header risolvo il problema. ma che succede? perchè quella session o il cookie non vengono conservati dopo il reload? la session di autenticazione con il nome utente viene gestita correttamente.