Wie kann man verhindern, dass eine mit FPDF erstellte PDF-Datei in PHP aus dem Cache geöffnet wird?

Antwort

Das Problem, dass eine mit FPDF erstellte PDF-Datei im Browser aus dem Cache geladen wird, liegt meist daran, dass der Browser die Datei nicht als „neu“ erkennt und daher eine ältere Version aus dem Cache anzeigt. Um dieses Verhalten zu verhindern, solltest du HTTP-Header setzen, die das Caching unterbinden. Füge vor der Ausgabe der PDF-Datei mit FPDF folgende Header in deinem PHP-Skript ein: ```php header('Content-Type: application/pdf'); header('Content-Disposition: inline; filename="deine_datei.pdf"'); header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); header('Pragma: no-cache'); header('Expires: 0'); ``` **Wichtige Hinweise:** - Die Header müssen vor jeglicher Ausgabe (auch vor Leerzeilen oder HTML) gesendet werden. - `Cache-Control` und `Pragma` sorgen dafür, dass der Browser die Datei nicht cached. - `Expires: 0` gibt an, dass die Datei sofort abläuft. **Beispiel:** ```php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hallo Welt!'); header('Content-Type: application/pdf'); header('Content-Disposition: inline; filename="beispiel.pdf"'); header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0'); header('Pragma: no-cache'); header('Expires: 0'); $pdf->Output('I', 'beispiel.pdf'); ``` Damit wird immer die aktuelle Version der PDF-Datei angezeigt und nicht eine gecachte Version. Weitere Infos zu FPDF: [http://www.fpdf.org/](http://www.fpdf.org/)

Kategorie: Programmierung Tags: FPDF PHP Cache
Neue Frage stellen

Verwandte Fragen

Gibt es für FPDF eine Möglichkeit, das Caching der generierten PDF-Datei zu verhindern?

Mit FPDF selbst kannst du nicht direkt steuern, wie der Browser mit dem Cache der erzeugten PDF-Datei umgeht, da FPDF nur für die PDF-Erstellung in PHP zuständig ist. Das Caching-Verhalten w... [mehr]

Wie kann man ein PHP 5.6 Script auf PHP 8.4 konvertieren?

Um ein PHP 5.6-Skript auf PHP 8.4 zu migrieren, sind mehrere Schritte notwendig, da sich die Sprache in Syntax, Funktionen und Verhalten deutlich verändert hat. Hier sind die wichtigsten Punkte,... [mehr]

Wie definiere ich in PHP8 eine Variable, um Warnungen wie 'Undefined variable' zu vermeiden?

Um in PHP 8 eine Variable zu definieren und die Warnung „Warning: Undefined variable“ zu vermeiden, musst du sicherstellen, dass die Variable vor ihrer Verwendung initialisiert wird. Das b... [mehr]

Wie kann ich in PHP8 Excel-Dateien erstellen?

In PHP8 kannst du Excel-Dateien am besten mit der Bibliothek [PhpSpreadsheet](https://phpspreadsheet.readthedocs.io/) erstellen. PhpSpreadsheet ist der Nachfolger von PHPExcel und unterstützt das... [mehr]

Wie erstelle ich in PHP ein MySQL Prepared Statement mit zwei Bedingungen, wobei eine Bedingung optional alles abdecken kann?

Um in PHP mit MySQL (MySQLi oder PDO) ein Prepared Statement mit zwei Bedingungen zu erstellen, wobei eine Bedingung optional ist (z.B. „alles“ oder ein bestimmter Wert), kannst du das wie... [mehr]

Wie bettet man HTML-Elemente in PHP allgemein gültig und optimal ein?

HTML-Elemente werden in PHP am besten eingebettet, indem du sie entweder direkt im HTML-Code schreibst und PHP-Blöcke nur für dynamische Inhalte verwendest, oder indem du sie als Strings in... [mehr]

Wie finde ich in PHP nach einer SQL-Abfrage im Ergebnis-Array den Eintrag, bei dem ein Attribut einen bestimmten Wert hat?

Angenommen, du hast nach einer SQL-Abfrage ein Array von Datensätzen, z.B. so: ```php $ergebnis = [ ['id' => 1, 'name' => 'Anna'], ['id' =&g... [mehr]

Was gibt sprintf('%d', '1.6') in PHP aus?

`sprintf('%d', '1.6')` gibt in PHP den Wert `1` aus. Begründung: Das Format `%d` erwartet einen Integer-Wert. Wenn ein String wie `'1.6'` übergeben wird, wan... [mehr]

Wie gebe ich ein Array in PHP 8 per Schleife aus?

Um einen Array in PHP 8 in einer Schleife anzuzeigen, kannst du zum Beispiel eine foreach-Schleife verwenden. Hier ein einfaches Beispiel: ```php <?php $fruits = ["Apfel", "Banane&q... [mehr]

Wie stelle ich mit PHP 8 eine ODBC-Verbindung zu SQL Server mit Windows-Authentifizierung her?

Um mit PHP 8 eine ODBC-Verbindung zu einem Microsoft SQL Server unter Verwendung der Windows-Authentifizierung herzustellen, gehst du wie folgt vor: ### Voraussetzungen 1. **ODBC-Treiber für SQ... [mehr]