Question

j'utilise require_once() dans header.php pour inclure la bibliothèque FIREPHP. Dans la page.php, je fais l'habituel ...

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

Obtenir ces erreurs.

'Headers already sent....'

et

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

J'ai pensé que l'utilisation require_once dans l'en-tête du modèle.php (surtout la sortie HTML) serait sûre (sortie pré-en-tête). Je suppose que ce n'est pas le cas.

Quelqu'un at-il une expérience avec cela? (PS J'ai essayé le plugin WP Firephp, ne fonctionnait pas correctement)

Était-ce utile?

La solution

FIREPHP utilise les en-têtes de sortie pour transférer des données de débogage au navigateur. Alors le require_once() La déclaration n'est pas le problème, mais le fait que vous vous connectez page.php, à quel point HTML a déjà été sorti. Non seulement vous devez inclure FIREPHP avant que tout contenu n'ait été envoyé, mais vous devez également faire toute la journalisation avant d'envoyer du contenu.

La solution de contournement habituelle consiste à maintenir toute sortie au navigateur en utilisant la tampon de sortie et le ob_* Famille de fonctions. Cela vous permet d'envoyer des en-têtes même si echo() Les commandes (et les goûts) ont déjà été émises.

Je suppose que faire tout cela en toute sécurité est ce pour quoi le plugin WP_Firephp a été fait. Je recommanderais de jeter un deuxième aperçu de ce plugin.

Autres conseils

Mettre

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

en haut de votre fichier d'en-tête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top