Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [FPDF] Problem
Forum PHP.pl > Forum > Przedszkole
Reiven
Witam, mam pewien problem z fpdf, otóż to wyświetla mi taki błąd:

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

a mój skrypt wygląda następująco:

  1. <?php
  2.  
  3.  
  4. define('FPDF_FONTPATH','font/');
  5. require('fpdf.php');
  6.  
  7.  
  8. include("config.php");
  9.  
  10.  
  11. $pdf=new FPDF();
  12.  
  13.  
  14. $pdf->Open();
  15.  
  16.  
  17. $pdf->SetAutoPageBreak(false);
  18.  
  19.  
  20. $pdf->AddPage();
  21.  
  22.  
  23. $y_axis = 60;
  24. $y_axis_a = 50;
  25.  
  26. $pdf->Image('karta.PNG', $pdf->GetX()+0, $pdf->GetY()+0, 0, 0, 'PNG');
  27.  
  28. $pdf->SetFillColor(232,232,229);
  29. $pdf->SetFont('Arial','B',10);
  30. $pdf->SetY($y_axis_a);
  31. $pdf->SetX(18);
  32. $pdf->Cell(5,6,'id',1,0,'L',1);
  33. $pdf->Cell(15,6,'stadium',1,0,'L',1);
  34. $pdf->Cell(21,6,'Data lnienia',1,0,'R',1);
  35. $pdf->Cell(45,6,'Data ostatniego karmienia',1,0,'R',1);
  36. $pdf->Cell(24,6,'Pokarm',1,0,'R',1);
  37. $pdf->Cell(31,6,'Data nawadniania',1,0,'R',1);
  38. $pdf->Cell(12,6,'Ile ML',1,0,'R',1);
  39. $pdf->Cell(14,6,'dc',1,0,'R',1);
  40. $pdf->Cell(14,6,'caly',1,0,'R',1);
  41.  
  42.  
  43. $y_axis = $y_axis + $row_height;
  44.  
  45.  
  46. $result=mysql_query('select * from karty where kto="'.$_SESSION["login2"].'" and dzial="4"');
  47.  
  48.  
  49. $i = 1;
  50.  
  51.  
  52. $max = 25;
  53.  
  54.  
  55. $row_height = 6;
  56.  
  57. while($row = mysql_fetch_array($result))
  58. {
  59.  
  60. if ($i == $max)
  61. {
  62. $pdf->AddPage();
  63.  
  64.  
  65. $pdf->SetY($y_axis);
  66. $pdf->SetX(18);
  67. $pdf->Cell(5,6,'id',1,0,'L',1);
  68. $pdf->Cell(15,6,'stadium',1,0,'L',1);
  69. $pdf->Cell(21,6,'Data lnienia',1,0,'R',1);
  70. $pdf->Cell(45,6,'Data ostatniego karmienia',1,0,'R',1);
  71. $pdf->Cell(24,6,'Pokarm',1,0,'R',1);
  72. $pdf->Cell(31,6,'Data nawadniania',1,0,'R',1);
  73. $pdf->Cell(12,6,'Ile ML',1,0,'R',1);
  74. $pdf->Cell(14,6,'dc',1,0,'R',1);
  75. $pdf->Cell(14,6,'caly',1,0,'R',1);
  76.  
  77.  
  78.  
  79. $y_axis = $y_axis + $row_height;
  80.  
  81.  
  82. $i = 1;
  83. }
  84.  
  85. $id = $row['id'];
  86. $stadium = $row['stadium'];
  87. $wylinka = $row['wylinka'];
  88. $dataostatniegokarmienia = $row['dataostatniegokarmienia'];
  89. $pokarm = $row['pokarm'];
  90. $datazwilzenia= $row['datazwilzenia'];
  91. $mc = $row['mc'];
  92. $dc = $row['dc'];
  93. $caly = $row['caly'];
  94. $kto = $row['kto'];
  95. $dodanedata = $row['dodanedata'];
  96. $edycjadata = $row['edycjadata'];
  97. $dzial = $row['dzial'];
  98.  
  99. $pdf->SetY($y_axis);
  100. $pdf->SetX(18);
  101. $pdf->Cell(5,6,$id,1,0,'L',1);
  102. $pdf->Cell(15,6,$stadium,1,0,'L',1);
  103. $pdf->Cell(21,6,$wylinka,1,0,'L',1);
  104. $pdf->Cell(45,6,$dataostatniegokarmienia,1,0,'L',1);
  105. $pdf->Cell(24,6,$pokarm,1,0,'R',1);
  106. $pdf->Cell(31,6,$datazwilzenia,1,0,'R',1);
  107. $pdf->Cell(12,6,$mc,1,0,'R',1);
  108. $pdf->Cell(14,6,$dc,1,0,'R',1);
  109. $pdf->Cell(14,6,$caly,1,0,'R',1);
  110.  
  111. $y_axis = $y_axis + $row_height;
  112. $i = $i + 1;
  113. }
  114.  
  115. $pdf->Output('karta-'.$_SESSION["login2"].'.pdf', D);
  116. ?>


gdy w $pdf->Output dam:
  1. <?php
  2. $pdf->Output('karta-'.$_SESSION["login2"].'.pdf');
  3. ?>

zapisuje mi na serwerze
a gdy dam:

  1. <?php
  2. $pdf->Output();
  3. ?>

wyskakuje powyższy błąd....
kszychu
Zakomentuj $pdf->Output(); i zobacz, co Ci wyświetli. Skrypt zwraca Ci pewnie jakiś błąd.
skowron-line
zrob tak

Kod
include('config.php');
define('FPDF_FONTPATH','font/');
require('fpdf.php');
Reiven
biała strona się pokazuje jak zakomentuje smile.gif

Cytat(skowron-line @ 16.11.2007, 13:56:50 ) *
zrob tak

Kod
include('config.php');
define('FPDF_FONTPATH','font/');
require('fpdf.php');


nadal FPDF error: Some data has already been output, can't send PDF file
kszychu
A co robi $pdf->Open()? Nie znajduję tego w manualu.
Dogrzebałem się co robi (sam tego używałem). Ale było to używane w starszej wersji biblioteki, więc może teraz powoduje ten błąd?
Reiven
nawet po usunięciu tego: $pdf->Open() nadal wyświetla się błąd :|
FPDF error: Some data has already been output, can't send PDF file
nospor
FPDF informuje cie, ze wyslales juz do przeglądarki jakies dane. Jesli to jest caly skrypt co pokazales i nic wiecej nie masz, to zapewne chodzi o BOM - takie 3 znaczki na początku pliku UTF8. Musisz sie ich pozbyc. Jesli zas ten skrypt jest czesscia czegos wiekszego i to cos wali ci jakies echo czy cos podobnego - usun to smile.gif
kszychu
W logach (error_log) apache'a nie ma nic ciekawego?

I jeszcze do tego, co napisał nospor: czy <?php jest w PIERWSZEJ linijce skryptu i NIE MA tam ŻADNEJ SPACJI przed?
Reiven
w logach nic nie ma..

nospor tak to jest cały skrypt.
Mówisz o BOM hmmm a jak to usunąć :| i nie widzę żadnych dodatkowych 3 znaczków smile.gif
nospor
BOM jest niewidzialny w edytorze.

1) Czy plik jest zapisane w utf-8? Jeśli tak, użyj normalnego edytora, ktory zapisuje bez BOM (np. eclipse).
2) To co napisal kszychu: <?php ma byc pierwsza linia w skrypcie i bez wczesniejszysz zadnych spacji
Reiven
zmieniłem serwer oraz kodowanie strony na iso-8859-2 z bazy danych dane ładnie wyświetla, zrobiłem poprzez ttf2pt1 i makefont polską czcionkę i nadal w pdf'ie nie ma polskich znaków tylko np zamiast ś jest
  1. <?php
  2. &#347;
  3. ?>


może mi ktoś pomóc ?
dadexix
nie znam się na tym ale chyba PDF'a "piszesz" w taki sposób:
  1. <?php
  2. to som jakie&#347; treści
  3. ?>
(wiem że nie pisze się "som" ale nie chce mi się "ą" szukać:P)
a jak byś pisał pdf'a i generował go jako:
Kod
to som jakieś treści
- z polskimi znakami w kodzie?

Może coś źle mówie ale nigdy nie widziałem jeszcze skryptu do generowania PDF na oczy bo mi to nigdy nie było potrzebne(jestem początkujący)

6:13...
Właśnie zauważyłem że zmieniło moje pismo:P
czemu czasem mi zamienia
& #347;
na "ś"
Virgon
Jak o te BOM chodzi to możesz w notatniku otworzyć i wywalić albo w Notepadzie++ ustawić aby kododwał UTF8 bez BOM sam miałem ten problem z innym błędem smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.