Falsche PDF-Datei

Dann einfach ein entsprechendes max-age setzen. Wenn das ding alle 2 Wochen erneuert wird.

<filesMatch "\.(pdf|gif)$">
   ExpiresActive On
   ExpiresDefault "access plus 2 weeks"
   Header append Cache-Control "public"
</filesMatch>

Da es sich hier um eine reine static site handelt, wuerde ich pauschal schonmal garnichts mit php machen.
Eher wuerde ich mal etwas zeit in css stecken, aber das ist nicht das thema.

<?php 

// "bild" ist einfach nur ein string, ob da was liegt weiss nur der teufel
$bild_stammessen = "images/stammessen.gif"; 
// chance steht 1:5000000 das es dir um die ohren fliegt,
// klingt viel, ist es nicht.
$bild_zufall =rand(1,5000000); 
// $stammessen existiert nicht, selbst wenn, 
// haettest du hinterher einen string + "?rand=__foo__" 
// es hat sich kein dateiname geaendert, alles ist so wie es vorher war, 
// nur mit nem error 
$bild_neue_stammessen = $stammessen."?rand=".$bild_zufall; 

Gerne.

Pseudozufall, zufallszahlen existieren nicht.

Ich wette irgendwo steckt da eine RCE drin, ist mir allerdings zu aufwendig zu suchen.

Nein, weil in dem code weder ein bild geladen, noch umbenannt wird.
Wenn du mit dem argument “error ist schneller als bild neuladen” kommst, hast du allerdings recht.

War keine behauptung, ich bevorzuge tatsachen.

Das wird nicht noetig sein, ebenso sind header kein gepfusche…die existieren aus einem grund und der webserver gibt dir aus diesem grund auch direktiven um sie deinen wuenschen entsprechend zu konfigurieren.

Ich gehe hier vom Beispiel: sonnenschein11 (Tina) aus
Die nur Ihre Speisekarte immer neu laden will ohne gesammten Cache zu löschen was Sie ja gar nicht braucht.
Dazu bindet Sie Ihre Datei so ein: (Siehe Eintrag Sonnne…)

( < ) immer ändern in: < da ich sonst links sehe.

(<) a href=“images/stammessen.gif”" target="_blank">Stammessen

So wird es auch mit der ganzen Server www…/images/stammessen.gif im Chache gespeichert.

Daher kannte ich Ihren Pfad
Nun also 3 Zeilen:

<?php $bild_stammessen = "images/stammessen.gif"; // Ist der Pfad wo die Image Datei gespeichert ist. $bild_zufall =rand(1,5000000); // Erstellt ein Zufallszahl (Pseudozufall) z.b = 4254 zwischen 1-50000000 $bild_neue_stammessen = $stammessen."?rand=".$bild_zufall; // fügt zusammen: (Pfad und Nr) images/stammessen.gif?rand=4254 und wird auch so in Variable $bild_neue_stammessen gespeichert. // Also haben wir einen neuen Bildpfad mit einer (Pseudozufall) Nummer dahinter // Ausgabe Möglichkeit in php: echo"( < ) a href=\"$bild_neue_stammessen\" target=\"_blank\">Stammessen "; ?>

(< ) a href="<?php echo $bild_neue_stammessen; ?>" target="_blank">Stammessen

Beim nächsten Seiten Aufruf oder (F5) passiert nun folgendes:
PHP Code wird neu durchlaufen:
Der Bildpfad bekommt einen neue rand() Nr. z.B 124514
Der neue Bildpfad lautet also images/stammessen.gif?rand=124514

Der Server versucht num im Chache nach images/stammessen.gif?rand=124514 zu suchen. Findet dies aber nicht da es als images/stammessen.gif?rand=4254 Chache gespeichert ist.

Also ladet der Browser es immer neu außer Du hast wirklich Pech (oder Glück) und rand() erstellt 2 mal zufällig hintereinander die gleiche Zahl. (Chance 1:5000000 das dieses passieren könnte).

Du kannst es ja testen und nachschauen.
Klicke im Browser auf das geladene im neuem Tab Bild mit rechter Maustaste und schau Dir an wie dieses gespeichert wird.

Daher kannst Du genau sagen welches Bild neu geladen werden muß und welche besser schon im Chache vorgeladen sind.

Ich gebe snwflake Recht ist sicher auch keine schlechte Sache aber für eine Speisekarte und nur ein Bild das nicht im Chache liegen soll ist der aufwand wohl easy und php auch keine kunst. Kopie / Paste.

Ich denke die meisten werden aufgeben wenn Sie sich erst mal mit Deinen Header einstellungen voll beschäftigen sollen um zu wissen was da passiert und ist wohl für Speisekarte zu übertrieben.

Ist nicht böse sondern nur ein 2 Möglichkeit um das Problem zu lösen was Sonnenschein hat.

Ich nutze es selbst und habe bisher keinen Browser gefunden der mir damit nicht umgehen kann. Also entscheidet Euch selbst. Nochmals snwflake nicht böse nehmen

// “bild” ist einfach nur ein string, ob da was liegt weiss nur der teufel

Da hast Du Recht aber prüfung mit Php ist wohl zu übertrieben. Ich gehe davon aus das Sie Ihre neue Speisekarte schon in das gleiche Verzeichniss schiebt. (-;

Aber natürlich machbar:

if (file_exists(“images/stammessen.gif”)){

                <  a href="<?php echo $bild_neue_stammessen; ?>" target="_blank">Stammessen </a>
                } else {
                   echo" Derzeit keine neue Speisekarte vorhanden ";
                }

Na toll entweder ich bin zu blöd dieses Form zu benutzen oder es geht nicht wirklich gut. Macht sachen mit mir das es bald kein Spaß mehr macht eins zu erstellen. Bei bearbeitung macht es mir immer irgendwelche Fehler. Unglaublich.