Ini adalah tindak lanjut dari pertanyaan tentang Cara debug: HEADER SUDAH DIKIRIM dan GD2 . Secara khusus cara memperbaiki kesalahan berikut (perhatikan baris pertama telah ditambahkan menggunakan saran debug sebelumnya untuk melacak sumber):
2014-02-04T14:26:06+00:00 DEBUG (7): Cannot send headers; headers already sent in /home/.../lib/Varien/Image/Adapter/Gd2.php, line 133
2014-02-05T16:14:32+00:00 DEBUG (7): HEADERS ALREADY SENT: < pre >
[0] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:52
[1] /home/.../lib/Zend/Controller/Response/Abstract.php:766
[2] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:83
[3] /home/.../app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /home/.../app/code/core/Mage/Core/Model/App.php:354
[5] /home/.../app/Mage.php:683
[6] /home/.../public_html/index.php:87
</ pre >
Pertanyaan itu adalah bagaimana cara men-debug masalah ini. Pertanyaan ini adalah bagaimana cara memperbaikinya. Sesuai "jawaban" saya pada pertanyaan itu, dan setelah melakukan beberapa pengujian lebih lanjut pada pemasangan vanilla Magento, saya dapat mengonfirmasi bahwa ini memang tampaknya merupakan bug inti Magento (v1.7.0.2).
Cukup mengelola gambar pada halaman atau blok statis, menggunakan halaman Magento standar / blok manajer gambar menyebabkan log ini. Untuk mereproduksi, buka halaman yang memiliki gambar di dalamnya. Akan ada satu dari ini yang dicatat setiap gambar pada halaman. Buka pengelola gambar dan lihat gambar yang diunggah - akan ada yang lain untuk setiap gambar yang ditampilkan.
Masalahnya tampaknya dengan fungsi ini, yang pada bacaan saya pasti akan menyebabkan kesalahan ini setiap kali gambar CMS diambil untuk ditampilkan di dasbor.
public function display()
{
header("Content-type: ".$this->getMimeType());
call_user_func($this->_getCallback('output'), $this->_imageHandler);
}
Meskipun tampaknya tidak berdampak pada toko, saya lebih suka tidak menganggap ini sebagai "kesalahan jinak" (karena Microsoft suka menyebut hal-hal yang tidak dapat mereka perbaiki / perbaiki!). Saya kira kita bisa memodifikasi canSendHeader () di lib / Zend / Controller / Response / Abstract.php agar tidak melempar kesalahan jika $ file gd2.php, tapi itu hanya lumpur buruk!
Seperti apa terlihat pada beberapa titik sebelum canSendHeaders disebut sebagai bagian dari menampilkan gambar CMS di dashboard, baik $ throw atau $ this-> headerSentThrowsException harus disetel salah sehingga ini tidak menghasilkan pengecualian.
Ada ide? Atau ini sesuatu yang dipelajari pemilik Magento untuk hidup bersama !?