Immer wieder das selbe Problem beim erstellen von PDF-Dokumenten - FPDF error: Some data has already been output. Ein typischer Anfänger-Fehler, der wegen mangelhafter Programmierkenntnisse vorkommt. Wenn das PDF gesendet werden soll sind schon andere Zeichen zuvor gesendet worden. Diese Fehlermeldung kommt direkt von der FPDF-Klasse. Abhilfe ist nur eine saubere Programmierung. Erst recht wenn Daten aus einer MySQL-DB gezogen werden. Im Anschluss eine Liste möglicher Fehler beim Programmieren.
Wird ein PDF, was mit FPDF erzeugt wird, direkt mit Header zum Browser gesendet, dann dürfen vor der PDF-Ausgabe (PDF-Stream) keine andere Zeichen ausgegeben werden. Hier eine Liste, was man alles falsch machen kann:
Verboten sind:
- echo() Ausgaben
- print() oder print_r() Ausgaben
- Zeilenumbrüche
- Leerzeichen
- HTML Ausgaben
- alles was ausserhalb von <? und ?> steht
- UTF-8 BOM Zeichenkette ( macht Notpad beim UTF-8 speichern, nicht Notepad++ )
- PHP Fehlermeldungen
- PHP Warnmeldungen ( besonders bei error_reporting(E_ALL) )
- MySQL Fehlermeldungen ( Sytanx error, supplied argument is not a valid... )
- MySQL Warnmeldungen ( exit(), die() etc... )
- Statusmeldungen jeglicher Art!
Diese Liste bezieht sich auch auf Dateien die mittels include() oder require() etc.. in das PHP-Script eingebunden werden, wo das PDF erzeugt wird. Hier muss jede PHP-Datei überprüft werden!!!