Bilder aus Datenbank cachen

Schick, wenn das Bild gesendet wird, ein Cookie mit der sid und dem Bildnamen mit.

Falls noch nicht passiert, das Bildverzeichnis per htaccess gegen Zugriff schützen
(zusätzlich zur nur-PHP-Auslieferung).

Wenn dann ein Bild angefordert wird und ein Cookie dabei ist
(von diesem Bild, Dateiname gleich),
dann:
Wenn in der Browseranfrage ersichtlich ist, dass das Bild noch im Cache liegt,
die sid aus dem Cookie verwenden.
Sonst das Cookie löschen.

Es muss sichergestellt werden, dass eine sid aus einem Cookie nicht schon in der DB-Tabelle für ein anderes Bild liegt. Also bei der Sid-Erstellung zB. den aktuellen Timestap mit einbeziehen.

PS: Drei returns (von oben), die sind seltsam :D
 
Das Bildverzeichnis per htaccess schützen geht doch nicht, oder? Das hatten wir ja irgendwo auf der ersten Seite:)
Sobald ich das per htacess schütze, will er immer Passwort und son kram.

Die Idee von dir Sheel, ein Code zu generieren und den dann an die Bild url ran zu hängen war schon super, aber das Problem was daraus entsteht ist ja schon mehrfach von mir genannt worden:)

Cookies sind glaub ich nicht so der Weg, weil auf einer einer Seite bestimmt bis zu 100 Bilder freigegeben werden müssen.

Kann man vielleicht den Aufrufschutz direkt in der Bild.php erzeugen, ohne htaccess?
Hab mir schon meinen Kopf zebrochen, aber komm auf keine gescheite Lösung
 
Passwortabfrage: Kommt nicht, wenn das Bild per PHP gesendet wird.

Zum Problem (Performance?): Was machst du dann da im Code?
Nur grob drübergeschaut, schaut das danach aus.
 
Passwortabfrage kommt aber irgendwie doch, selbst wenn ichs mit PHP generiere.

Perfomanceprobleme gibt es Online nicht wirklich, nur Lokal war dasn bissl rucklig.

In erzeuge in der Funktion einen Code, dieser wird mit der Bild ID in eine Tabelle geschrieben. Am Ende der Funktion gibt sie mir die img src.bild.php aus an der ich jetzt den Code hänge, damit in der bild.php dieser überprüft werden kann. Gibt es einen Code in der Tabelle wird die Bildfreigabe erteilt, gibt es keinen Code wird keine Freigabe erteilt. Am ende der Bild.php lösche ich alle Codeeinträge, die älter als 10 sekunden sind.

Aber ich glaube mir ist eben eine Lösung eingefallen!
Werds mal probieren
 
Das ist ja genau der Ablauf, wie ich auch denke.
Und wenn die Performance passt, welches Problem gibts dann?

Wenn das mit htaccess aus irgendeinem Grund nicht geht,
kannst du den Bildnamen im Cookie auch verschlüsseln.
 
Ja so in etwa hast mir das ja auch empfohlen, bloß hab ich den erzeugten Code in die bild.php?hash
rangehangen, sodass die Bild.php ihn über get entgegen nehmen konnte.
Das Problem war jetzt das ein einziges Bild unendlich viele URLS hatte, weil ja an jeden bild.php ein unterschiedlicher hash drannen war. Hoffe du weißt was ich meine, hehe

Häng jetzt aber nicht mehr den hash an die BildURL, nur noch die Bild ID und die ID von wem das Bild ist, in der Funtkion schreibe ich in die Sicherheitstabelle bild id, von wem ist bild, und welche id hat bild recht, plus nem Timestamp damit ältere Codes gelöscht werden.

In der bild.php wird jetzt überprüft ob die ganzen Werte existieren und es darausfolgend eine ID gibt, gibt es diese ID Bild aus cache oder Datenbank holen, Eintrag löschen, gibt es diese ID nicht, Bild nicht anzeigen!

Naja, dürfte eigentlich so funktionieren, zumal alles auch auf einem Saisson System basiert. Bau das alles mal ein und teste es off und online, vielleicht hast ja dann mal bock dir die Ergebnisse anzuschauen:)

Greetz
 

Neue Beiträge

Zurück