Questo è un seguito alla domanda su come eseguire il debug: HEADER GIA 'INVIATO e GD2 . In particolare, come correggere i seguenti errori (notare che la prima riga era stata aggiunta usando i precedenti consigli di debug per tracciare l'origine):
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 >
Quella domanda era su come eseguire il debug di questo problema. Questa domanda è su come risolverlo. Secondo la mia "risposta" su quella domanda, e dopo aver fatto ulteriori test su un'installazione Magento vaniglia, posso confermare che questo sembra essere un bug di base Magento (v1.7.0.2).
La semplice gestione delle immagini su pagine o blocchi statici, utilizzando il gestore di immagini / blocchi di pagina Magento standard causa questi registri. Per riprodurre, apri una pagina che contiene immagini. Ci sarà uno di questi registrati per immagine sulla pagina. Apri il gestore delle immagini e visualizza le immagini caricate: ce ne sarà un'altra per ogni immagine visualizzata.
Il problema sembra essere con questa funzione, che sulla mia lettura causerà sicuramente questo errore ogni volta che un'immagine CMS viene recuperata per la visualizzazione nella dashboard.
public function display()
{
header("Content-type: ".$this->getMimeType());
call_user_func($this->_getCallback('output'), $this->_imageHandler);
}
Anche se non sembra avere alcun impatto sul negozio, preferirei non trattarlo come un "errore benigno" (dato che a Microsoft piace chiamare cose che non possono avere ragione / correzione!). Immagino che potremmo semplicemente modificare canSendHeader () in lib / Zend / Controller / Response / Abstract.php per non generare un errore se $ file è gd2.php, ma è solo un brutto kludge!
A un certo punto sembra che prima che canSendHeaders venga chiamato come parte della visualizzazione delle immagini CMS nella dashboard, $ throw o $ this-> headersSentThrowsException devono essere impostati su false in modo da non generare un'eccezione.
Qualche idea? O questo è qualcosa con cui i proprietari di Magento hanno imparato a convivere !?