Warning: Cannot modify header information
Molto spesso programmando in php capita di incappare nel warning "Cannot modify header information - headers already sent by ...", questo capita perchč gli header vanno inviati prima di qualsiasi altro tipo di output.Un classico esempio di codice che genererā questo warning potrebbe essere
<?phpAnche la creazione di un cookie dopo un output HTML potrebbe generare questo avvertimento
echo "stringa";
header("Location: index.php");
?>
<p>OutputHTML</p>
<?php
setcookie('nome', 1);
?>
Una possibile soluzione, oltre a quella di rivedere completamente il proprio codice č quella di sfruttare le funzioni di buffering dell'output, ob_stat() ed ob_end_flush().
<?php
// Inizializzo il buffer dell'output
ob_start();
// Output prima dell'Header
echo "Stringa";
// Header o Cookie
setcookie('nome', 1);
// Invio del buffer al client
ob_end_flush();
?>
Questo codice non produrrā nessun warning
Commenti
1. danilo (30.09.11 22:08)
mi hai salvato grazie!
2. Mauro (23.04.09 09:26)
Siiii grandioso sei un genio! avevo un costrutto case con vari header di destinazione,
ma mi dava quel maledetto errore! ma ora con ob_start() all inizio e ob_end_flush alla fine del mio codice non mi da piu problemi! evvaiiiiiiiiiiiiiiiiiiiiiii grazie milleeeeeeeeeeee
ma mi dava quel maledetto errore! ma ora con ob_start() all inizio e ob_end_flush alla fine del mio codice non mi da piu problemi! evvaiiiiiiiiiiiiiiiiiiiiiii grazie milleeeeeeeeeeee
