it-swarm.com.de

FPDF-Fehler: Einige Daten wurden bereits ausgegeben und können nicht gesendet werden PDF Datei auf 000webhost

Ich verwende die FPDF-Klasse, um auf meiner Website ein PDF zu generieren. Alles hat gut funktioniert, bis ich in den letzten Wochen Fehler bekam:

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

In den letzten Wochen habe ich nichts an meinem Code geändert, und ich habe auch nach fpdf-Ausgaben (einschließlich unnötiger Speicherplätze vor PHP, deaktivierte Stücklisten-Signatur usw.) gesucht.

Ich habe meine Website auf 000webhost.com, also habe ich auch den Analysecode am Ende der Seite deaktiviert, aber das PDF funktioniert immer noch nicht. Die einzige Spur, die ich hinterlassen habe, ist "" in einem Quellcode ("ich kann es sehen, wenn ich den Quellcode in Chrome-Browser überprüfe)".

Ich kann nicht einmal an diesem einfachen Beispiel arbeiten:

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

Gibt es eine Möglichkeit, andere Ausgaben auf der Webseite durch PHP zu deaktivieren? oder verwendet jemand fpdf auf 000webhost?

5
user1857756

Ich denke, session.auto_start ist auf 1 gesetzt. Dadurch wird eine Sitzung gestartet und ein PHPSESSID-Cookie an den Browser gesendet.

Sie können versuchen, es mithilfe des folgenden Codes zu deaktivieren:

<?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();
?>

Wenn session.auto_start nicht auf 0 eingestellt ist, versuchen Sie Folgendes:

<?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(); 
?>
11
Raymond Nijland

einfach einfügen ob_end_clean (); vor der Ausgabe.

<?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();
?>
21
user1825831

Dieser Fehler tritt auf, wenn Sie versuchen, PDF zu generieren, nachdem Sie bereits etwas anderes auf dieser Browserseite gerendert haben, z. B. wenn Sie Folgendes getan haben:

echo $ value;

Der FPDF-Code möchte eine "leere Leinwand", auf der seine Ausgabe dargestellt werden soll (oder, vermutet man, ein leerer iframe, obwohl ich das noch nicht getestet habe).

1
Lapochka

Verwenden Sie die Zeile wie folgt:

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

Problem wird gelöst;)

1
abid saleem

In meinem Fall hatte ich eingestellt:

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

Bei der Anforderung zur Erstellung des Berichts wurden im Browser einige Warnungen angezeigt (z. B. die Verwendung veralteter Funktionen).
Durch Aktivieren der Option off der Option display_errors wurde der Bericht erfolgreich erstellt.

1
Victor

Ich habe dies gesetzt, um dieses Problem am Anfang zu beheben (ob_clean) ändert die Struktur von PDF_ nicht:

require('fpdf/fpdf.php');
ob_clean();
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 

Fehler: Einige Daten wurden bereits ausgegeben, die Datei PDF kann nicht gesendet werden.

0
Juan Pablo