Magento: HEADERS ALREADY SENT

Dodany: 13 listopada, 2015 | Kategoria: Magento, PHP

Jeś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

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;
}
Brak komentarzy »

Leave a Reply

  • *