Pregunta

Estoy usando require_once() en Header.php para incluir la biblioteca FirePhp. En la página.php estoy haciendo lo habitual ...

$firephp = FirePHP::getInstance(true);
$firephp->log($categories);

Obteniendo estos errores ..

'Headers already sent....'

y

Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive...

Pensé que el uso de requería_once en el encabezado de la plantilla.php (sobre todo la salida HTML) sería seguro (salida del encabezado anterior). Supongo que este no es el caso.

Alguien tiene experiencia con esto? (PD, probé el complemento WP FirePhp, no funcionaba bien)

¿Fue útil?

Solución

FirePhp utiliza los encabezados de salida para transferir datos de depuración al navegador. Entonces el require_once() La declaración no es el problema, sino el hecho de que usted inicia sesión page.php, momento en el que HTML ya ha sido emitido. No solo debe incluir FirePhp antes de que se haya enviado cualquier contenido, sino que también debe registrar todo antes de enviar contenido.

La solución habitual es mantener cualquier salida en el navegador utilizando el almacenamiento en búfer de salida y el ob_* familia de funciones. Que le permite enviar encabezados aunque echo() Los comandos (y los gustos) ya se han emitido.

Supongo que hacer todo esto de manera segura es para qué estaba hecho el complemento WP_FIREPHP. Recomendaría echar un segundo vistazo a ese complemento.

Otros consejos

Poner

<?php
require_once(/FirePHPCore/FirePHP.class.php');
ob_start();
?>

En la parte superior de su archivo de encabezado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top