无法发送标头;标题已在/home/zk/public_html/lib/Zend/Cache/Backend/File.php中发送,第1行

时间:2014-08-03 14:01:51

标签: php magento zend-framework core

  

无法发送标头;标题已在/home/zk/public_html/lib/Zend/Cache/Backend/File.php,第1行发送

跟踪:

#0 /home/zk/public_html/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true)

#1 /home/zk/public_html/app/code/core/Mage/Core/Model/App.php(1246): Zend_Controller_Response_Abstract->setHeader('Content-Type', 'text/html; char...')

#2 /home/zk/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(80): Mage_Core_Model_App->getResponse()

#3 /home/zk/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(202): Mage_Core_Controller_Varien_Front->getResponse()

#4 /home/zk/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))

#5 /home/zk/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()

#6 /home/zk/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)

#7 /home/zk/public_html/index.php(87): Mage::run('', 'store')

#8 {main}

我是magento的新手,无法找到错误

2 个答案:

答案 0 :(得分:2)

这篇文章将帮助您How to fix "Headers already sent" error in PHP

你可以尝试放入php文件的开头

<?php ob_start(); ?>

最后

<?php ob_end_flush(); ?>

答案 1 :(得分:1)

此错误表示当Magento尝试发送其标头时,已经发送了一些输出。如果你发送输出,标题会在输出之前自动发送,从那时起就无法发送另一个标题。

因此,如果在header function调用之前某处发送了某些内容,请尝试检查。例如,PHP开始标记<?php之前的任何字符都会导致发送输出。字符也可能不可见,例如UTF-8 BOM (Byte Order Mark),因此请使用hex-viewer / editor进行检查。

PHP关闭标记?>之后的任何字符都会导致这种情况,因此完全省略PHP结束标记是一种很好的做法。

首先,我建议检查第1行文件/home/zk/public_html/lib/Zend/Cache/Backend/File.php中的内容。如果只有<?php,请使用hex-viewer检查字符“&lt;”是文件中的第一个,或者在它之前有一些不可见的字符。