سؤال

أنا استخدم require_once() في header.php لتشمل مكتبة Firpeph. في page.php أفعل المعتاد ...

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

الحصول على هذه الأخطاء ..

'Headers already sent....'

و

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

كنت أحسب أن استخدام require_once في رأس القالب. أعتقد أن هذا ليس هو الحال.

أي شخص لديه خبرة في هذا؟ (PS لقد جربت البرنامج المساعد WP Firephp ، لم أكن يعمل بشكل صحيح)

هل كانت مفيدة؟

المحلول

يستخدم FirephP رؤوس الإخراج لنقل بيانات تصحيح الأخطاء إلى المتصفح. لذلك require_once() البيان ليس هو المشكلة ، ولكن حقيقة قيامك بتسجيل الدخول page.php, ، عند هذه النقطة تم بالفعل إخراج HTML. لا تحتاج فقط إلى تضمين FirephP قبل إرسال أي محتوى - تحتاج أيضًا إلى القيام بجميع التسجيل قبل إرسال المحتوى أيضًا.

الحل المعتاد هو الاحتفاظ بأي إخراج إلى المتصفح باستخدام التخزين المؤقت للإخراج و ob_* عائلة الوظائف. هذا يمكّنك من إرسال الرؤوس على الرغم من ذلك echo() تم بالفعل إصدار الأوامر (وأعجوبة).

أظن أن القيام بكل هذا بأمان هو ما تم صنعه المكون الإضافي WP_FIREPHP. أوصي بإلقاء نظرة ثانية على هذا البرنامج المساعد.

نصائح أخرى

وضع

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

في الجزء العلوي من ملف رأسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top