Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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;
        }
    }
}
 

Link to post
Share on other sites

42 минуты назад, freelancer сказал:

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

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

  • +1 1
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
Link to post
Share on other sites

2 минуты назад, dimzone сказал:

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

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

Link to post
Share on other sites

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

 

 

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

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

 

 

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

Link to post
Share on other sites

24 минуты назад, dimzone сказал:

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

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

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

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

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

Link to post
Share on other sites

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

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

 

 

Edited by dimzone
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.