Cách khắc phục: TIẾNG VIỆT TIẾNG VIỆT


8

Đây là phần tiếp theo cho câu hỏi về Cách gỡ lỗi: Header ALREADY SENT và GD2 . Cụ thể cách khắc phục các lỗi sau (lưu ý dòng đầu tiên đã được thêm bằng lời khuyên gỡ lỗi trước để theo dõi nguồn):

   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 >

Câu hỏi đó là về cách gỡ lỗi vấn đề này. Câu hỏi này là về cách khắc phục nó. Theo "câu trả lời" của tôi cho câu hỏi đó và đã thực hiện thêm một số thử nghiệm trên bản cài đặt Magento vanilla, tôi có thể xác nhận rằng đây có vẻ là lỗi lõi Magento (v1.7.0.2).

Chỉ cần quản lý hình ảnh trên các trang hoặc khối tĩnh, sử dụng trình quản lý hình ảnh / khối Magento tiêu chuẩn sẽ gây ra các nhật ký này. Để tái tạo, mở một trang có hình ảnh trên đó. Sẽ có một trong những đăng nhập trên mỗi hình ảnh trên trang. Mở trình quản lý hình ảnh và xem hình ảnh được tải lên - sẽ có một hình ảnh khác cho mỗi hình ảnh được hiển thị.

Vấn đề dường như là với chức năng này, mà trong quá trình đọc của tôi chắc chắn sẽ gây ra lỗi này bất cứ khi nào một hình ảnh CMS được tìm nạp để hiển thị trong bảng điều khiển.

public function display()
    {
        header("Content-type: ".$this->getMimeType());
        call_user_func($this->_getCallback('output'), $this->_imageHandler);
    }

Mặc dù nó dường như không có bất kỳ tác động nào đến cửa hàng, nhưng tôi không muốn coi đây là "lỗi lành tính" (vì Microsoft muốn gọi những thứ mà họ không thể sửa / sửa!). Tôi đoán rằng chúng ta chỉ có thể sửa đổi canSendHeader () trong lib / Zend / Controller / Feedback / Abstract.php để không gây ra lỗi nếu tập tin $ là gd2.php, nhưng đó chỉ là một lỗi khó chịu!

Một số điểm trông giống như trước khi canSendHeaders được gọi là một phần của việc hiển thị hình ảnh CMS trong bảng điều khiển, $ throw hoặc $ this-> headersSentThrowsException nên được đặt thành sai để điều này không tạo ra ngoại lệ.

Có ý kiến ​​gì không? Hay đây là thứ mà chủ sở hữu Magento đã học được để sống cùng!?



Bạn đã quản lý để sửa lỗi này? Chúng tôi cũng thấy điều đó
snh_nl

Câu trả lời:


2

Vấn đề này sẽ được vá tại một số điểm; tham chiếu MPERF-7047 .


Đây có phải là trường hợp không, vấn đề đã được đóng lại và không có cách khắc phục nào tôi có thể tìm thấy trong 1.9.2.4?
Aaron Bonner

1
Theo ghi chú ngày hôm qua, vấn đề này "đã đóng cửa khi phiên bản EE 1.14.3.0/CE 1.9.3.0 được phát hành" - và bạn đã được ghi chú cụ thể trong JIRA, @AaronBonner ;-)
benmark

1

lol tôi đã giải quyết vấn đề của tôi thay đổi điều này trong:

/app/code/local/Cmsmart/Megamothy/Block/Navulation.php

/*
* Name Extension: Megamenu
* Version: 0.1.0

cho:

/**
* Name Extension: Megamenu
* Version: 0.1.0

-.-


Vì vậy, sự bất tài nói chung trong trình thông dịch php ở đâu đó đang được sử dụng trên trang web của bạn khiến nó không nhận ra đó /*là một nhận xét php trừ khi nó có thông tin khác *?
Phòng thí nghiệm Fiasco

0

Tôi có cùng một vấn đề trong khi cài đặt Magento. Trong trường hợp của tôi, cho phép output_buffering trong PHP đã giải quyết vấn đề. Trong xampp với PHP 5.6 output_buffering được bật theo mặc định. Trong xampp với PHP 5.3 output_buffering bị tắt theo mặc định.


0

Để tham khảo, vấn đề có thể được sao chép bằng cách tải lên một số tệp png bằng trình chỉnh sửa cms / wysiwyg của quản trị viên sau đó xem danh sách các hình thu nhỏ.

Tôi đã hack hành động thu nhỏ đó để sử dụng bộ đệm đầu ra và sử dụng đối tượng phản hồi để đặt phần thân dữ liệu và Kiểu nội dung chính xác (có một lỗi khác trong đó mã đang đặt id loại tệp gd thay vì mimetype).

Mã dưới đây thay thế phương thức cùng tên trong app/code/core/Mage/Adminhtml/controllers/Cms/Wysiwyg/ImagesController.php. Sử dụng bất kỳ cơ chế nào bạn muốn ghi đè phương thức này (Tôi đã sử dụng ghi đè bộ điều khiển nhóm mã cục bộ).

/** * Generate image thumbnail on the fly */ public function thumbnailAction() { $file = $this->getRequest()->getParam('file'); $file = Mage::helper('cms/wysiwyg_images')->idDecode($file); $thumb = $this->getStorage()->resizeOnTheFly($file); if ($thumb !== false) { $image = Varien_Image_Adapter::factory('GD2'); $image->open($thumb); ob_start(); $image->display(); $imageData = ob_get_contents(); ob_end_clean(); $mimeType = image_type_to_mime_type($image->getMimeType()); $this->getResponse()->setHeader('Content-Type', $mimeType, true); $this->getResponse()->setBody($imageData); } else { // todo: genearte some placeholder } }

Tôi cũng sẽ duy trì một ý chính ở đây - https://gist.github.com/ajbonner/94c8e61705bb7aa3e6feca4461d85595

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.