Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z czasem wykonania skryptu
Forum PHP.pl > Forum > Przedszkole
maraska
Witam.

Napisałem skrypt, którego celem jest wystawienie dokumentu .pdf, zapis tego pliku i wysłanie maila z linkiem do pliku.pdf.

Maile wysyła klasa phpmailer, a pdf generuje może znana wam klasa fpdf.

require('/fpdf17/fpdf.php');

Jednego maila wysyła bez problemu, ale jak to się podepnie pod zapytanie do bazy, to przy trzecim wyskakuje:

Fatal error: Cannot redeclare show() (previously declared in /opt/forma.php:1378)

W tej linii inicjowana jest funkcja generująca .pdf
function show($a).......

Wydaje mi się, że jedynym wytłumaczeniem jest to, że mój skrypt forma.php chce generować kolejny .pdf gdy poprzedni jest jeszcze "obrabiany" przez fpdf.php .

Co o tym myślicie i czy znacie może jakieś rozwiązanie takiego problemu?

b4rt3kk
A po cholerę generujesz ten PDF za każdym razem, skoro wysyłasz tylko link do niego? Podeślij link, a PDF generuj w momencie kliknięcia w owy link. Chyba prościej?
maraska
Nie bardzo potrafię wymyślić, jak to zrobić

Lokalizacja pdf to:
$pdf->Output('/opt/forma_'.$id.'_'.$key.'.pdf','F');

Otwierasz to klikając np. w serwis.pl/forma_'.$id.'_'.$key.'.pdf"]http://www.serwis.pl/forma_'.$id.'_'.$key.'.pdf

Trzeba by robić jakąś stronę przejściową .php zawierającą tylko jeden guzik "Pokaż" - mało elegancko

?
b4rt3kk
Strona przejściowa może wyglądać tak:

  1. // generowanie PDF
  2. $pdf -> output($link);
  3. header("Location: ".$link);


Link może wyglądać tak:

  1. <a href="generuj.php">Plik.pdf</a>


I nikt się nawet nie spostrzeże (chyba że zajrzy do źródła), że plik został wygenerowany dynamicznie. Jedyne zastrzeżenie jest takie by ktoś nie wygenerował z linku pliku nie przeznaczonego dla niego.
maraska
Ano, prawda.

<a href="generuj.php?key=xxxxxxxxxxxxxxxxxxx">Plik.pdf</a>
mlawnik
i cannot redeclare show() oznacza, że nie możesz ponownie tej funkcji zadeklarowac, więc gdzieś masz zduplikowany kod (albo wywoływany 2 razy)
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.