无法发送标头;标头已经发送

时间:2014-12-15 23:23:58

标签: magento

我对magento购物车有疑问。

无法发送标头;标题已经发送/homepages/14/d412931110/htdocs/shop/app/code/local/BTS/Checkout/Model/Observer.php,第91行

报告:

a:5:{i:0;s:137:"Cannot send headers; headers already sent in /homepages/14/d412931110/htdocs/shop/app/code/local/BTS/Checkout/Model/Observer.php, line 91";i:1;s:1601:"#0 /homepages/14/d412931110/htdocs/shop/lib/Zend/Controller/Response/Abstract.php(148): Zend_Controller_Response_Abstract->canSendHeaders(true)
#1 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Response/Http.php(105): Zend_Controller_Response_Abstract->setRedirect('http://www.puet...', 302)
#2 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Action.php(672): Mage_Core_Controller_Response_Http->setRedirect('http://www.puet...')
#3 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Checkout/controllers/CartController.php(92): Mage_Core_Controller_Varien_Action->_redirect('checkout/cart')
#4 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Checkout/controllers/CartController.php(225): Mage_Checkout_CartController->_goBack()
#5 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Checkout_CartController->addAction()
#6 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#7 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#8 /homepages/14/d412931110/htdocs/shop/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
#9 /homepages/14/d412931110/htdocs/shop/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#10 /homepages/14/d412931110/htdocs/shop/index.php(80): Mage::run('', 'store')
#11 {main}";s:3:"url";s:83:"/index.php/checkout/cart/add/uenc/aHR0cDovL3d3dy5wdWV0emNoZW4uY29tLw,,/product/229/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

请问有什么解决方案吗?

2 个答案:

答案 0 :(得分:1)

请检查您的文件可能是您离开

回声,  Zend_Debug :: dump(),  的print_r()

如果您对这些进行评论,那么您可以;面对“无法发送标题;标题已发送”问题

如果问题仍未解决,则将文件顶部的空格留下

所以请两个选项,你将解决你自己的问题

由于 Jayram Prajapati

答案 1 :(得分:0)

感谢您的回答!

echo中没有Zend_Debug::dump()print_r()observer.php

这是内容:

class BTS_Checkout_Model_Observer {

    private $_shippingCode = 'royalmail';
    private $_country = 'DE';

    public function addShipping($params = null) {
        if (Mage::registry('checkout_addShipping')) {
            Mage::unregister('checkout_addShipping');
            return;
        }
        Mage::register('checkout_addShipping',true);

        $cart = Mage::getSingleton('checkout/cart');
        $quote = $cart->getQuote();

        if ($quote->getCouponCode() != '') {
            $c = Mage::getResourceModel('salesrule/rule_collection');
            $c->getSelect()->where("code=?", $quote->getCouponCode());
            foreach ($c->getItems() as $item) { $coupon = $item; }

            if ($coupon->getSimpleFreeShipping() > 0) {
                $quote->getShippingAddress()->setShippingMethod($this->_shippingCode)->save();
                return true;
            }
        }

        try {
            $method = $quote->getShippingAddress()->getShippingMethod();
            if ($method) return; // don't overwrite what's already there if we have one set already

            if ($quote->getShippingAddress()->getCountryId() == '') {
                $quote->getShippingAddress()->setCountryId($this->_country);
            }

            $quote->getShippingAddress()->setCollectShippingRates(true);
            $quote->getShippingAddress()->collectShippingRates();

            $rates = $quote->getShippingAddress()->getAllShippingRates();
            $allowed_rates = array();
            foreach ($rates as $rate) {
                array_push($allowed_rates,$rate->getCode());
            }

            if (!in_array($this->_shippingCode,$allowed_rates) && count($allowed_rates) > 0) {
                $shippingCode = $allowed_rates[0];
            }

            if (!empty($shippingCode)) {
                $address = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
                if ($address->getCountryId() == '') $address->setCountryId($this->_country);
                if ($address->getCity() == '') $address->setCity('');
                if ($address->getPostcode() == '') $address->setPostcode('');
                if ($address->getRegionId() == '') $address->setRegionId('');
                if ($address->getRegion() == '') $address->setRegion('');
                $address->setShippingMethod($this->_shippingCode)->setCollectShippingRates(true);
                Mage::getSingleton('checkout/session')->getQuote()->save();
            } else {
                $address = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress();
                if ($address->getCountryId() == '') $address->setCountryId($this->_country);
                if ($address->getCity() == '') $address->setCity('');
                if ($address->getPostcode() == '') $address->setPostcode('');
                if ($address->getRegionId() == '') $address->setRegionId('');
                if ($address->getRegion() == '') $address->setRegion('');
                $address->setShippingMethod($this->_shippingCode)->setCollectShippingRates(true);
                Mage::getSingleton('checkout/session')->getQuote()->save();
            }

            Mage::getSingleton('checkout/session')->resetCheckout();

        }
        catch (Mage_Core_Exception $e) {
            Mage::getSingleton('checkout/session')->addError($e->getMessage());
        }
        catch (Exception $e) {
            Mage::getSingleton('checkout/session')->addException($e, Mage::helper('checkout')->__('Load customer quote error'));
        }


    }

    public function getQuote() {
        if (empty($this->_quote)) {
            $this->_quote = Mage::getSingleton('checkout/session')->getQuote();
        }
        return $this->_quote;
    } 
}

感谢您的帮助!