ERROR EN PHP headers_sent

Tengo el siguiente código php en el único archivo fuente index.php de la carpeta /pruebas de mi flamante dominio estonofunciona.com

<?php
if(headers_sent($archivo,$linea)
{
          die("Ya se ha enviado la cabecera html desde el archivo $archivo en la línea $linea");
}
else
{
          die("No se ha enviado aún la cabecera html");
}
?>

Navego

http:// www.estonofunciona.com/pruebas

y obtengo la siguiente página web:

Ya se ha enviado la cabecera html desde el archivo index.php en la línea 1

¿LO QUÉ? ¿MANDE? ¿MAIS QU'EST-CE QUE TU DIS? ¿PERO QUÉ IDIOTEZ ES ÉSTA QUE ME DICES QUE YA SE HAN ENVIADO LAS CABECERAS?

A ver, revisamos el archivo fuente y nos aseguramos de que:
1.- No hay nada escrito antes del <?php, ya que de lo contrario ésto se tomaría como archivo fuente html
2.- No hay nada escrito despues del ?>, ya que también se tomaría como archivo fuente html
3.- Por si acaso, no cerramos el código php, quitamos el ?> del final, así no puede ser que haya nada que se entienda como html después del código php

Y SIGUE APARECIENDO LO QUE A TODAS LUCES ES UN ERROR DEL INTÉRPRETE PHP,

QUE YA SE HAN ENVIADO LAS CABECERAS

¡PERO SI ES LA PRIMERA LÍNEA DE CÓDIGO QUE ESTAS EJECUTANDO! ¿CÓMO TE ATREVES A DECIRME QUE YA HAS ENVIADO LAS CABECERAS?

CÁLMATE, JOSÉ ANTONIO, Y ESTUDIA EL ERROR

"PHP HEADERS_SENT SIEMPRE RETORNA TRUE"

NO ES POSIBLE, TENGO CIENTOS DE CÓDIGOS QUE VALIDAN ÉSTO ANTES DE INTENTAR ENVIAR CABECERAS, Y QUE FUNCIONAN BIEN.

¿QUÉ PUEDE ESTAR PASANDO?

Y cuando ya me había suicidado 4 o 5 veces (no me acuerdo cuantas porque a partir de la primera ya ... es que ni me daba cuenta ... totalmente indoloras las demás, el cuerpo ya queda insensible tras el primer suicidio) caigo en que estaba reutilizando un archivo fuente de esos que los grandes programadores ponen en las plataformas de recursos en la red para delirio de los que queremos aprender. Y miro y resulta que estaba codificado con UTF-8 con BOM.

¡Manda webs!

Le quito el BOM y ya funciona.

Agradecido es poco decir cuando se lo he contado al colega gran programador. Y dice que ahora sí que le funciona cuando lo sube al servidor. Antes no, pero ahora....si. O sea, que ahora.... si, pero en cambio antes......no. Que quizá fuese que utilizó un editor online para escribir el código que subió al servidor.

Ya, ya, ahora échale las culpas al tipo que te prepara gratis la plataforma de recursos. ¿Y por qué no le echas las culpas al intérprete de PHP?.

¿headers_sent() true en la linea 1? Por favor, ¿cómo va a ser true en la 1? ¿a ver si las cabeceras mandadas son los códigos BOM de los caracteres "<?php "

Digo yo que ya podría contestar el intérprete de php lo de "headers_sent is true or (headers_sent is false and source code saved with UTF-8 BOM option)" cuando la línea de código es 1.

Habría evitado mis 4 o 5 suicidios.









blog48 - ERROR EN PHP headers_sent - - -SUSCRIPCIONES - - -http://www.rojasdelgado.com