XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   PDF oder fpdf Fehlermeldungen (http://xhtmlforum.de/showthread.php?t=62523)

Magellan 27.09.2010 14:11

PDF oder fpdf Fehlermeldungen
 
Ich habe folgende Fehlermeldung und finde keine Lösung.

Warning: Cannot modify header information - headers already sent by (output started at /home/manfred/www/projekte/diweis/php_funktionen/funktionen.php:19)

in /home/manfred/www/projekte/fpdf/fpdf.php on line 1018
FPDF error: Some data has already been output, can't send PDF file

In der Zeile 20 steht diese head angaben.

echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";

und in der Zeile 1018 in der Datei fpdf.php steht dieses.

if(php_sapi_name()!='cli')
{
//We send to a browser
header('Content-Type: application/pdf');
if(headers_sent())
$this->Error('Some data has already been output, can\'t send PDF file');
header('Content-Length: '.strlen($this->buffer));
header('Content-Disposition: inline; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
}


Unter den häufig gestellten Fragen auf fpdf.de habe ich dieses gefunden.

9. Wenn ich ein PDF Dokument erzeuge, erhalte ich die Warnmeldung "Warning: Cannot add header information - headers already sent by (output started at script.php:X)"
Diese Warnmeldung wird ausgegeben, wenn mittels der header() Funktionen HTTP Headerinformationen an den Client gesendet werden sollen, jedoch bereits Daten an den Client und somit auch die Header gesendet wurden. Es ist darauf zu achten, das vor der Ausgabe des PDF Dokument keine Ausgabe erfolgt.


Doch wenn ich in der index.php zuerst mit den

require("/home/manfred/www/projekte/fpdf/fpdf.php");

$pdf = new FPDF();
$pdf -> ADDPage();
$pdf -> SetFont('Arial','B',16);
$pdf ->Cell(40,10,'Hello World');
$pdf -> Output();

Anweisungen starte erhalte ich diese Fehlermeldung.

Warning: Cannot modify header information - headers already sent by (output started at /home/manfred/www/projekte/fpdf/fpdf.php:1027) in /home/manfred/www/projekte/fpdf/fpdf.php on line 1018
FPDF error: Some data has already been output, can't send PDF file


Was mache ich falsch?
Oder ist der Hinweis „9. Wenn ich ein PDF Dokument erzeuge, erhalte“
anders zu verstehen?


Schon jetzt einen Dank für eure Bemühungen.
Manfred

Praktikant 27.09.2010 14:33

Nein, der Hinweis sagt schon das richtige. Es darf eben keine Aussgabe von der Manipulation der Header-Angabe sein. Du musst also sämtliche Ausgaben unterdrücken, was mit ob_start() und ob_end_flush() wahrscheinlich am einfachsten geht. Was wird denn in Zeile 1027 der Datei fpdf.php ausgegeben?

Magellan 27.09.2010 15:02

Der script der in Zeile 1018 beginnt endet in Zeile 1026

in Zeile 1027 steht dieses echo $this->buffer;


was mit ob_start() und ob_end_flush() wahrscheinlich am einfachsten geht.

werdeich jetzt mal testen .

schon mal ein Danke.


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:04 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023