Magento: HEADERS ALREADY SENT
Dodany: 13 listopada, 2015 | Kategoria: Magento, PHPJeśli nagłówki zostały już wysłane, magento będzie w logach pluć błędem: DEBUG (7): HEADERS ALREADY SENT:
, wraz ze stosem plików które doprowadziły do logowania tego błędu w app/code/core/Mage/Core/Controller/Response/Http.php:44
Niestety, lista ta nie mówi zbyt wiele:
[1] /lib/Zend/Controller/Response/Abstract.php:766
[2] /app/code/core/Mage/Core/Controller/Response/Http.php:77
[3] /app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /app/code/core/Mage/Core/Model/App.php:347
[5] /app/Mage.php:640
[6] /index.php:78
[2] /app/code/core/Mage/Core/Controller/Response/Http.php:77
[3] /app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /app/code/core/Mage/Core/Model/App.php:347
[5] /app/Mage.php:640
[6] /index.php:78
Wystarczy jednak niewielka modyfikacja i dowiemy się gdzie leży problem. Proponuję skopiować plik app/code/core/Mage/Core/Controller/Response/Http.php
do app/code/local/Mage/Core/Controller/Response/Http.php
i w metodzie sendHeaders()
zamienić:
43 44 45 46 | if (!$this->canSendHeaders()) { Mage::log('HEADERS ALREADY SENT: '.mageDebugBacktrace(true, true, true)); return $this; } |
na
43 44 45 46 47 | if (!$this->canSendHeaders()) { headers_sent($file, $line); Mage::log('HEADERS ALREADY SENT: '. $file .':' . $line); return $this; } |