fpdf in HTML-Seite eingebettet, geht das?

Diskussionen und Austausch über die von FPDF bereitgestellten Methoden, Problemen bei der Anwendung etc.
mexman
Benutzer
Beiträge: 18
Registriert: Do 23. Aug 2018, 08:12

fpdf in HTML-Seite eingebettet, geht das?

Beitragvon mexman » Sa 25. Aug 2018, 07:56

Hallo,
nach Durcharbeiten von Anleitung, Turorials, Forum, habe ich michfolgendes entdeckt:
Zuerst sollte sichergestellt werden, dass keine Ausgabe erfolgt, nachdem das PDF Dokument an den Browser gesendet wurde (nicht einmal ein Leerzeichen, Zeilenumbruch oder ähnliches).

und an eigene Versuche gemacht.
Was bedeutet exakt "nichts an den Browser schicken"?

Ich habe den PHP Code in eine HTML-Seite eingebettet ...so mit <html>, <head>, <body> etc. Ist das denn schon zu viel für fpdf?

Wenn ich lediglich den PHP Code als Datei auf den Server lade (z.B. Tutorial1) funktioniert alles prächtig!
Ich möchte aber gerne eine Mysql-Auswahlabfrage machen, bevor die selektierte Liste als PDF angezeigt werden soll (siehe http://www.ecotec2000.de/sqltest.php.... lässt sich das irgendwie machen? Dzu muss ich ja die Abfragefelder für die MYSQL-Datei erst beim Nutzer abfragen und das kann ich ohne HTML Umfeld nicht!

Gruss
Michael

Benutzeravatar
Wirus!
Beiträge: 1523
Registriert: Do 22. Jun 2006, 18:23

Re: fpdf in HTML-Seite eingebettet, geht das?

Beitragvon Wirus! » Sa 25. Aug 2018, 12:49

Was bedeutet exakt "nichts an den Browser schicken"?


"Nichts" heißt wirklich überhaupt nichts, also kein HTML, kein Zeichen, nichts im Sinne von überhauptreingarnichts halt.

Ich habe den PHP Code in eine HTML-Seite eingebettet ...so mit <html>, <head>, <body> etc.


Warum? Es steht explizit in den Tutorials , daß nichts außer dem PDF zum Browser zu schicken ist, also auch kein HTML.
Wenn Du ein fertiges PDF aufrufst, wird ja auch kein HTML mitgesendet sondern nur das PDF selbst.

Ist das denn schon zu viel für fpdf?


Da es mehr als nichts ist: Ja.

Ich möchte aber gerne eine Mysql-Auswahlabfrage machen, bevor die selektierte Liste als PDF angezeigt werden soll (siehe http://www.ecotec2000.de/sqltest.php.... lässt sich das irgendwie machen? Dzu muss ich ja die Abfragefelder für die MYSQL-Datei erst beim Nutzer abfragen und das kann ich ohne HTML Umfeld nicht!


Du kannst entweder erst eine Abfrage in HTML erstellen und dann daraus ein PDF generieren und anzeigen oder das PDF in ein Frame einbetten.
So wie Du das mit dem rekursiven Aufruf des Formulars machst, ist das mit einem PDF nicht zu machen (bzw. nur in einem eingebetteten Frame).

mexman
Benutzer
Beiträge: 18
Registriert: Do 23. Aug 2018, 08:12

Re: fpdf in HTML-Seite eingebettet, geht das?

Beitragvon mexman » Sa 25. Aug 2018, 15:04

Hallo Wirus:

Herzlichen Dank!

>Du kannst entweder erst eine Abfrage in HTML erstellen und dann daraus ein PDF generieren und anzeigen<
Oh....aber auch dann sende ich ja "etwas an den Browser".

>oder das PDF in ein Frame einbetten.<

Das klingt gut, aber auch dann schicke ich doch "was" zum Browser?
Ich hab's mal probiert und die fpdf-routine mal in einen Layer verlegt, den per Link aufgerufen, aber es funktioniert nicht...

>So wie Du das mit dem rekursiven Aufruf des Formulars machst, ist das mit einem PDF nicht zu machen (bzw. nur in einem eingebetteten Frame)<

Mein "Plan B" war, die Selektionsdaten per "Sessions" in die PHP-Abfrage+FPDF-Ausgabe zu transferieren.

Danke erst mal für die schnelle Ankunft
Gruss
Michael

.

Benutzeravatar
Wirus!
Beiträge: 1523
Registriert: Do 22. Jun 2006, 18:23

Re: fpdf in HTML-Seite eingebettet, geht das?

Beitragvon Wirus! » Sa 25. Aug 2018, 23:26

Oh....aber auch dann sende ich ja "etwas an den Browser".

Dass PDF wird selbstverständlkich zum Browser geschickt (sollte klar sein). Das Problem ist, daß Du nichts ausser dem PDF zum Browser schicken darfst. Du rufst in Deinem Script das Script rekursiv auf und damit wird HTML zum Browser geschickt -> geht nicht!

Rufe mit Klick auf den "Show"-Knopf einfach ein neues Script auf, das nur den FPDF-Code enthält und es wird funktionieren.

Das klingt gut, aber auch dann schicke ich doch "was" zum Browser?

Nö, edas ist nicht gut. Frames sind böse und sollten vermieden werden - es ist aber eine funktionale Lösung. Das PDF selbst muss natürlich zum Browser geschckt werden, dann halt in das Frame. Auzch dabei ist zu beachten, daß nichts ausser dem PDF zum Frame geschickt werden darf.

Ich hab's mal probiert und die fpdf-routine mal in einen Layer verlegt, den per Link aufgerufen, aber es funktioniert nicht...

Ein Layer ist kein Frame, das kann also nicht funktionieren. Siehe https://wiki.selfhtml.org/wiki/HTML/Frames

Mein "Plan B" war, die Selektionsdaten per "Sessions" in die PHP-Abfrage+FPDF-Ausgabe zu transferieren.

Sessions sind können funktionieren, müssen aber nicht. POST oder GET ist eindeutig die bessere Wahl, das fuktioniert immer.
Unabhängig von der Transfermethode funktioniert Dein Script so wie es ist auch mit Sessiondaten nicht, denn was nicht funktioniert - wie bereits erwähnt - ist ein rekursives Script, da es HTML ausgibt*

*Ein rekursives Script würde gehen, wenn es ausschließlich das PDF ausgegeben wird und alle anderen Ausgaben restlos eliminiert würden.
Sinn macht das keinen, da der Aufruf eines neuen Scriptes einfacher ist

mexman
Benutzer
Beiträge: 18
Registriert: Do 23. Aug 2018, 08:12

Re: fpdf in HTML-Seite eingebettet, geht das?

Beitragvon mexman » Mo 27. Aug 2018, 15:04

Hi Wirus:
Danke für die Unterstützung, auch wenn sie mir etwas "zu hoch" war.
Ich habe das Ganze jetzt dadurch gelöst, dass ich mit einem Link (auf dem Button) eine andere .PHP-Datei aufrufe, die finalen SELECT Parameter per $_SESSION() übergebe und sonst nichts mache !
Vielleicht gäb´s besseres, aber das war für mich (!) das leichteste.

Gruss
Michael


Zurück zu „Programmierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste