Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Generowanie pdf'a
Forum PHP.pl > Forum > Przedszkole
Wykrywacz
Witam. Mam problem wywołuje poniższy skrypt i nie otwiera mi wogóle .pdf'a tylko tak jak by się zawiesz:
Co może być z nim nie tak (skrypt z książki):

  1. <?php
  2. $typ = $_SESSION['typ'];
  3.  $user = $_SESSION['user'] ;
  4. $data = $_SESSION['data'];
  5.  
  6.  
  7. function pdf_replace($wzor,$zmienna,$lancuch){
  8. $dlug = strlen($wzor);
  9. $wyreg='';
  10. for($i=0; $i<$dlug; $i++){
  11. $wyrreg .=$wzor[$i];
  12. if ($i<$dlug - 1)
  13. $wyrreg .= "()-{0,1}[0-9]*(){0,1}";
  14. }
  15. return ereg_replace($wyrreg,$zmienna,$lancuch);
  16. }
  17. if(!$typ || !$user || !$data){
  18. echo 'Nieprawidłowe wywołenia - proszę o kontakt z Administratorem';
  19. }
  20. else 
  21. header('Content-Disposition: filename=cert.pdf');
  22. header('Content-type: application/pdf');
  23.  
  24. $nazwa_pliku = 'wynik.pdf';
  25. $wp = fopen($nazwa_pliku, 'r');
  26. $wyswietl = fread($wp, filesize($nazwa_pliku));
  27. fclose($wp);
  28.  
  29. $wyswietl = pdf_replace('<<NAZWISKO>>'.strtoupper($user),$wyswietl);
  30. $wyswietl = pdf_replace('<<Nazwisko>>', $user,$wyswietl);
  31. $wyswietl = pdf_replace('<<wynik>>',$typ, $wyswietl);
  32. $wyswietl = pdf_replace('<<data>>',$data,$wyswietl);
  33. echo $wyswietl;
  34. ?>


Zastanawiam się czy to nie błąd w szablonie. Nie potrafiłem znaleźć przykładu wiec używając sztuki dedukcji tongue.gif
zrobiłem go tak
Twój <<NAZWISKO>>
A nie <<Nazwisko>>
<<wynik>>
<<data>>
kszychu
A error_log nie wie nic na ten temat?
Wykrywacz
No właśnie niechce mi nic pokazać, bo tak jakby przycina tą stronę po próbie wywołania. No i przez to nic nie pokazuje
wywala tylko w nagłównku druk.php (Obiekt application/pdf)
kszychu
A tam w else to świadomie nie użyłeś klamer? Chociaż nie sądzę, by o to akurat chodziło...
Wykrywacz
Nieświadomie zjadłem smile.gif
Ale racja nie w tym leży problem...
kszychu
A zablokuj wyświetlanie nagłówków, poustawiaj jakieś potykacze (echo "tu jestem"; etc) i zobacz, gdzie Ci się zawiesza.
Wykrywacz
Doprowadziłem to do takiej postaci samo w sobie działa. Problem pojawia się przy otwieraniu.
W tedy wywala infor, że plik jest uszkodzony.
Podejżewam że jest to wina szablonu bo szablon wygląda :
Kod
RAPORT GENERACJI PRZELEWÓW
FIRMA: <<FIRMA>> TYP PRZELEWU: <<TYP>>


Zamieszczam na wszelki wypadek kod.
Orientujecie się w którym miejscu może występować błąd?

  1. <?php
  2. $typ = $_SESSION['typ'];
  3.  $user = $_SESSION['user'] ;
  4.  
  5.  
  6.  
  7. function pdf_replace($wzor,$zmienna,$lancuch){
  8. $dlug = strlen($wzor);
  9. $wyreg='';
  10. for($i=0; $i<$dlug; $i++){
  11. $wyrreg .=$wzor[$i];
  12. if ($i<$dlug - 1)
  13. $wyrreg .= "()-{0,1}[0-9]*(){0,1}";
  14. }
  15. return ereg_replace($wyrreg,$zmienna,$lancuch);
  16. }
  17.  
  18. if(!$typ || !$user || !$data){
  19.  
  20. }
  21. else {
  22. header('Content-type: application/pdf');
  23. header('Content-Disposition: line, filename=wydanie.pdf');
  24.  
  25.  
  26.  
  27. $nazwa_pliku = 'WYD.pdf';
  28.  
  29. $wp = fopen($nazwa_pliku, 'r');
  30. $wyswietl = pdf_replace('<<FIRMA>>',$user,$wyswietl);
  31. $wyswietl = pdf_replace('<<TYP>>', $typ,$wyswietl);
  32. fclose($wp);
  33. echo $wyswietl;
  34. }
  35. ?>
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.