Moin!
... und die dritte Möglichkeit ist, dass Du in der Datenbank nur den Link auf das Bild (also einen verweis auf seinen Speicherort = Pfad und Name) speicherst und trotzdem ein Skript zum Ausgeben des Bildes zwischenschaltest.
Warum?
Ganz einfach: alle Bilder, die direkt über einen <img src="bla"> Link erreichbar sind, können auch von "Unbefugten" von der Platte gesaugt werden. Du hast also keinerlei Kontrolle über die Zugriffe.
Schwachsinnsbegründung! Alle Bilder, die per URL erreichbar sind, können gesaugt oder auf fremden Seiten verlinkt werden. Es ist dabei total unerheblich, ob ein Skript oder der Webserver selbst irgendwelche Prüfungen ausführen oder nicht. Wichtig ist nur: Das Bild ist unter http://www.example.com/irgendeinpfad/irgendein-skript.name?mit=irgendeinem¶meter=gequassel weltweit verfügbar - warum durch Aufruf dieser URL ein Bild kommt, ist für den Browser nicht weiter interessant. Aber für den Server, der bei direkt auf Platte gespeicherten Bildern Caching-Mechanismen wirksam werden lassen kann, die bei jeglicher Script-Einwirkung nicht mehr möglich sind - es geht also immer auf Kosten der Performance.
Wenn nur ein simpler Referrer-Check erfolgen soll, dann kann man das genauso schön auch durch entsprechende Konfiguration des Apache-Servers erreichen, beispielsweise durch mod_rewrite, was im Vergleich zu einem PHP-Skript immer noch wesentlich performanter sein dürfte.
- Sven Rautenberg