Domanda

sto usando require_once() In header.php per includere la libreria Firephp. Nella pagina.php sto facendo il solito ...

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

Ottenere questi errori ..

'Headers already sent....'

e

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

Ho pensato che l'utilizzo di Requisite_once nell'intestazione del modello.php (soprattutto output HTML) sarebbe stato sicuro (uscita pre -intestazione). Immagino che non sia così.

Qualcuno ha esperienza con questo? (PS Ho provato il plugin WP Firephp, non funzionava bene)

È stato utile?

Soluzione

FirephP utilizza le intestazioni di output per trasferire i dati di debug nel browser. Così la require_once() L'istruzione non è il problema, ma il fatto che si effettua l'accesso page.php, a quel punto HTML è già stato emesso. Non solo devi includere FirePephP prima che sia stato inviato qualsiasi contenuto, ma devi anche fare tutte le registrazioni anche prima di inviare contenuti.

La solita soluzione alternativa è quella di trattenere qualsiasi output per il browser utilizzando il buffering di uscita e ob_* Famiglia di funzioni. Ciò ti consente di inviare intestazioni anche se echo() I comandi (e gli simili) sono già stati emessi.

Immagino che fare tutto questo in sicurezza sia ciò per cui è stato creato il plugin WP_Firephp. Consiglierei di dare una seconda occhiata a quel plugin.

Altri suggerimenti

Mettere

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

Nella parte superiore del file di intestazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top