Originariamente inviato da piesse78
leggi il manuale ufficiale php
http://php.net/manual/en/function.header.php

dice:


puoi inviare un header solo se prima non c'è stato alcun output a video. Se tu fai uno script php che contiene degli "a capo" fuori dai blocchi <?php e ?>, questi costituiscono un output (cioè vengono visualizzati a video). Esempio:

codice:
<?php
   ... codice php
?>

<?php
   ... codice php
   header(".......");
?>
è sbagliato, perchè tra i due blocchi c'è una riga vuota e l'header viene invocato dopo che un output è già stato mandato alla pagina.

codice:
<?php
   ... codice php
?>
<?php
   ... codice php
   header(".......");
?>
invece è corretto, perchè tra i due blocchi php non c'è nulla.

attenzione che
codice:
<?php
   ... codice php
?>
<?php
   ... codice php

   echo "pippo";
   header(".......");
?>
è sbagliato comunque, perchè "echo" produce un output.
Ho capito, grazie mille per l'aiuto.