Перейти к содержанию

Рекомендуемые сообщения

Всем привет!

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

Пишет 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;
        }
    }
}
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

этот файл не виноват

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, freelancer сказал:

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

 

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

Изменено пользователем dimzone

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Cannot modify header information

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, dimzone сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 часов назад, markimax сказал:

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
24 минуты назад, dimzone сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 часов назад, markimax сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

 

Изменено пользователем dimzone

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.