hi,
Ich möchte aber erreichen, dass der Benutzer die Bilder sehen kann, wenn er sie über meine Homepage anscheuen möchte, aber dass er sie nicht direkt über ihre URL aufrufen kann.
Ist es möglich, dass ich in meinem PHP-Skript meinen Passwortschutz umgehe?
Natürlich - du brauchst ihn sogar nicht mal "umgehen", wenn du analog zu include/require vorgehst: Auf Dateisystemebene ist dieser Passwortschutz ja gar nicht implementiert bzw. dort greift er gar nicht - das tut er nur bei Zugriff über HTTP.
Was ich mir denken könnte, wäre z.B. dass ich ähnlich wie beim connect() mit der Datenbank zu Beginn meines PHP-Skriptes dem PHP-Skript die Zugriffsdaten für den passwortgeschützten Ordner mitgebe.
Gibt es eine derartige Funktion?
Nein.
Habt ihr sonstige Ideen, wie man das lösen könnte?
Erstelle dir ein PHP-Script, welches den passenden Content-Type-Header für Bilder (z.B. image/jpeg) mittels der Funktion header() erzeugt, und anschließend die binären Bilddaten aus dem Dateisystem einliest und an den Client weitergibt - z.B. per readfile().
Statt den Bildern verlinkst du dann dieses Script als src-Adresse der Bilder in deinem HTML.
Du kannst das Script gerne auch Parametergesteuert aufrufen, so dass du ihm bspw. den Bildpfad/-namen als GET-Parameter übergibst - so dass sich ein solches Script für alle Bilder nutzen lässt. (Passender Content-Type wäre dann auch noch zu ermitteln, z.B. an Hand der Dateiendung.)
Dabei solltest du den Parameterwert aber natürlich entsprechend validieren - nicht, dass sich über dieses Script auch die Inhalte anderer Dateien (ggf. nicht mal Bilder, sondern Scriptdateien mit darin liegenden Passwörtern etc.) auslesen lassen.
Dass das natürlich etwas mehr Performance kostet als direktes Ausliefern der Bilder durch den Webserver, sollte aber klar sein.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }