Jump to content

Recommended Posts

Всем привет!

Скажите пожалуйста как исправить ошибку блокирующую вход в админку.

Пишет Warning: Cannot modify header information - headers already sent by (output started at /home/d/dsilen37/telefonkupit.ru/public_html/system/library/response.php:1) in /home/d/d/t.ru/public_html/system/library/response.php on line 12

 

В файле подчеркивает 0 и значение 302 красным. 

В чем проблема не пойму.

Как исправить?

Вот файл

 

<?php
class Response {
    private $headers = array();
    private $level = 0;
    private $output;

    public function addHeader($header) {
        $this->headers[] = $header;
    }

    public function redirect($url, $status = 302) {
        header('Location:' . str_replace(array('&amp;', "\n", "\r"), array('&', '', ''), $url), true, $status);
        exit();
    }

    public function setCompression($level) {
        $this->level = $level;
    }

    public function getOutput() {
        return $this->output;
    }
    
    public function setOutput($output) {
        $this->output = $output;
    }

    private function compress($data, $level = 0) {
        if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)) {
            $encoding = 'gzip';
        }

        if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false)) {
            $encoding = 'x-gzip';
        }

        if (!isset($encoding) || ($level < -1 || $level > 9)) {
            return $data;
        }

        if (!extension_loaded('zlib') || ini_get('zlib.output_compression')) {
            return $data;
        }

        if (headers_sent()) {
            return $data;
        }

        if (connection_status()) {
            return $data;
        }

        $this->addHeader('Content-Encoding: ' . $encoding);

        return gzencode($data, (int)$level);
    }

    public function output() {
        if ($this->output) {
            $output = $this->level ? $this->compress($this->output, $this->level) : $this->output;
            if (!headers_sent()) {
                foreach ($this->headers as $header) {
                    header($header, true);
                }
            }
            echo $output;
        }
    }
}
 

Share this post


Link to post
Share on other sites
42 минуты назад, freelancer сказал:

warning не блокирующая ошибка

ну как же, в данном случае , должен быть редирект, но заголовок отправлен после вывода чего-то во внешний мир

  • +1 1

Share this post


Link to post
Share on other sites
15 минут назад, chukcha сказал:

ну как же, в данном случае , должен быть редирект, но заголовок отправлен после вывода чего-то во внешний мир

Заменил файл исходным и в админку вхожу. А вот когда входишь как пользователь на сайт то выскакивает опять ошибка

Warning: Cannot modify header information - headers already sent by (output started at /home/d/dsilen37/telefonkupit.ru/public_html/catalog/language/ru-ru/account/login.php:1) in /home/d/dsil/telefonkuru/public_html/system/library/response.php on line 12

 

Хотя после перезагрузке страница открывается с прошедшей авторизацией. Мне то не критично но вот пользователи могут пугаться...Как исправить? Где это?

Edited by dimzone

Share this post


Link to post
Share on other sites

в данном случае warning уже следствие.

там же написано

Cannot modify header information

Share this post


Link to post
Share on other sites
2 минуты назад, dimzone сказал:

Хотя после перезагрузке страница открывается с прошедшей авторизацией. Мне то не критично но вот пользователи могут пугаться...Как исправить? Где это?

все страницы так поочередно заменяйте

Share this post


Link to post
Share on other sites

потому что где utf -bom, как вероятность

Share this post


Link to post
Share on other sites

А зачем плодить темы ?
Вы же завели уже

 

 

Share this post


Link to post
Share on other sites
19 часов назад, markimax сказал:

А зачем плодить темы ?
Вы же завели уже

 

 

Там не подсказали. 

Share this post


Link to post
Share on other sites
24 минуты назад, dimzone сказал:

Там не подсказали. 

Так просто апните тему (напишите - "вопрос не решен")
И она будет как "свежая", не прочитанная
Зачем плодить  одинаковые темы
Давайте еще 100500 одинаковых тем "заведем"

Share this post


Link to post
Share on other sites
20 часов назад, markimax сказал:

Так просто апните тему (напишите - "вопрос не решен")
И она будет как "свежая", не прочитанная
Зачем плодить  одинаковые темы
Давайте еще 100500 одинаковых тем "заведем"

Хорошо. Я не знал что так можно сделать. )))) сто тыщ одинаковых тем заводить не будем.

Share this post


Link to post
Share on other sites

Спасибо всем! Это действительно проблема файлов с кодировкой utf-8 которые надо было переписать в кодировке utf-8 без BOM

Нашел все такие файлы с помощью find_bom и исправил Notepad++

 

 

Edited by dimzone

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.