Intereting Posts
Зацикливание через все файлы csv в каталоге, извлечение информации из каждого и помещение данных в базу данных mysql значения split из запроса http-запроса angularjs (данные) Модель OOP для PHP Framework Вызов функции php с помощью события onclick Yii2 ListView и датапровайдер Nginx заменит REMOTE_ADDR на X-Forwarded-For Вставлять строки только тогда, когда существует идентификатор из другой таблицы Как изменить текстовое поле на видимое в зависимости от того, какой элемент выбран в раскрывающемся меню? Регулярное выражение PHP: разделение на неэкранированный разделитель переписать соединение и запрос из mysql в mysqli Проблема маршрутизации, вызывающая ошибку Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException получить идентификатор кнопки после щелчка, используя php PHP: добавление параметров в URL? dyld: библиотека не загружена: /usr/local/lib/libjpeg.8.dylib – homebrew php раунд в PHP показывает научную нотацию вместо полного числа

Ошибка FPDF: некоторые данные уже выведены, не удается отправить файл PDF на 000webhost

Я использую класс FPDF для создания pdf-файла на своем веб-сайте. Все прошло хорошо, пока последние несколько недель, когда я начал получать ошибку:

FPDF error: Some data has already been output, can't send PDF file 

В течение последних нескольких недель ничего не изменилось в моем коде, и я также проверил на любой выход execpt fpdf (включая ненужное пространство перед php, отключенную подпись спецификации и т. Д.),

У меня есть мой веб-сайт на 000webhost.com, поэтому я также отключил аналитический код в конце страницы, но файл по-прежнему не работает. Единственная трассировка, которую я оставил, является мистическим "" в исходном коде (я вижу это при проверке исходного кода в браузере Chrome).

Я не могу работать даже на этом простом примере:

 <?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage() $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

Есть ли способ отключить любой другой вывод на веб-странице php? или кто-то использует fpdf на 000webhost?

Я думаю, что session.auto_start установлен в 1. Это запустит сеанс и отправит cookie PHPSESSID в браузер.

Вы можете попытаться отключить его, используя следующий код:

 <?php ini_set("session.auto_start", 0); require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage() $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> 

Если установка session.auto_start в 0 не работает, попробуйте следующее:

 <?php ob_start(); require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage() $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ob_end_flush(); ?> 

просто вставьте ob_end_clean (); перед выводом.

 <?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage() $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); ob_end_clean(); $pdf->Output(); ?> 

В моем случае я установил:

 ini_set('display_errors', 'on'); error_reporting(E_ALL | E_STRICT); 

Когда я сделал запрос на создание отчета, некоторые предупреждения были отображены в браузере (например, использование устаревших функций).
off опции display_errors , отчет был сгенерирован успешно.

Используйте строку следующим образом:

 require('fpdf.php'); ob_end_clean(); header("Content-Encoding: None", true); 

Проблема будет решена;)

Эта ошибка возникнет, если вы попытаетесь сгенерировать PDF-файл после того, как вы уже сделали что-то еще на этой странице браузера, например, если вы сделали что-то вроде этого:

echo $ value;

Код FPDF хочет, чтобы «пустой холст» отображал свой вывод (или, предположим, пустой iframe, хотя я еще не тестировал это).

 SELECT motivo, unidad_trans, km_inicial, km_final, rut_chofer, To_char(hora_inicial, 'DD/MM/YYYY HH:mm'), To_char(hora_final, 'DD/MM/YYYY HH:mm'), total_recorrido, destino, cod_combustible, cantidad_litros, cod_vehiculo, d.cod_estableci FROM mov_bitacora b, mov_chofer c, nuc_dependencias d, mov_combustible co, mov_vehiculo v WHERE b.unidad_tran = d.cod_estableci AND b.rut_chofer = c.rut_chofer AND b.cod_combustible = co.cod_combustible AND b.cod_vehiculo = v.cod_vehiculo AND id_bitacora = 6fpdf 

Ошибка: некоторые данные уже выведены, не удается отправить файл PDF.

Я поместил это, чтобы исправить эту проблему в начале (ob_clean) не меняет структуру PDF:

 require('fpdf/fpdf.php'); ob_clean();