Thomwiesel: Authentifizierung von Verzeichnissen mit htaccess/PHP Kombi

Hallo,
ich suche nach einer Lösung für folgendes:

auf einem Apache-Webserver gibt es ein Verzeichnis mit Bildern oder sonstigen Dateien.

Wird versucht, auf ein Bild zuzugreifen, wird automatisch ein PHP-Skript aufgerufen. Dieses überprüft eine SessionID (die dem Bild per GET mit übergeben wurde) und gibt true oder false zurück oder 0 oder 1.

Nur wenn die Session gültig ist, gibt dann der Apache die Datei in dem Verzeichnis zurück.

Was ich NICHT suche: das ganze lässt sich natürlich mit einem einfachen PHP-Skript realisieren.

1. checke Session
2. Ein Code, der in etwa wie folgt aussucht.

  
header('Content-type: image/jpeg;');  
readfile(getenv ('DOCUMENT_ROOT').'/pfad/'.$_GET['filename']);  
exit ();  

Warum nicht? Ich scheu etwas die ganze header-Geschichte, die man dann für jeden Mime-Type eigentlich einbauen müsste, wenn man sicher sein will, dass alles funktioniert.

Was denke ich aus dem gleichen Grund nicht funktioniert, ist die AddOutputFilter des Apaches, da ja auch hier wieder die Mime-Typen explizit definiert werden müssen (wobei ich mich hier nicht auskenne und dies nur aus der Doku interpretiert habe).

Kennt jemand eine Lösung? Vielen Dank

  1. ach ja vergessen: mod_ext_filter hatte ich mir auch mal angeschaut - das kommt am ehsten in die Richtung, die ich mir vorgestellt hatte. Aber auch hier bin ich am mime-Type Problem hängen geblieben

  2. Hi,

    Was ich NICHT suche: das ganze lässt sich natürlich mit einem einfachen PHP-Skript realisieren.

    1. checke Session
    2. Ein Code, der in etwa wie folgt aussucht.

    header('Content-type: image/jpeg;');

    readfile(getenv ('DOCUMENT_ROOT').'/pfad/'.$_GET['filename']);
    exit ();

      
    was gefällt dir an diesem erfrischend einfachen Ansatz nicht?  
      
    
    > Warum nicht? Ich scheu etwas die ganze header-Geschichte, die man dann für jeden Mime-Type eigentlich einbauen müsste, wenn man sicher sein will, dass alles funktioniert.  
      
    Gut, den richtige Content-Type (MIME-Type) solltest du natürlich angeben. Wenn du ihne nicht für jede Datei selbst bestimmen willst, kannst du ihn aber komfortabel über [getimagesize()](http://de3.php.net/manual/en/function.getimagesize.php) herausfinden - vorausgesetzt, es handelt sich tatsächlich nur um Bilder, wie du eingangs erwähnt hast.  
      
    So long,  
     Martin  
    
    -- 
    Der Mensch denkt, Gott lenkt.  
    Der Mensch dachte, Gott lachte.  
    
    
    1. Hallo,
      nein leider handelt es sich nicht nur um Bilder sondern wirklich um völlig beliebige Dateien. Die Bilder waren nur ein Beispiel.
      Danke trotzdem schon mal für die Antwort und viele Grüße