Marcus Reimann <[EMAIL PROTECTED]> schrieb am Wed, Jul 19, 2006 at 02:59:54AM 
+0200:
> Hallo Andreas,
> 
> folgende Lösung könnte Dir bei Deinem Problem weiterhelfen:
> 
> 1. Lege die herunterzuladenden Dateien in einem nicht
>    für die Öffentlichkeit erreichbaren Verzeichnis ab.
> 
> 2. Lege ein neues Verzeichnis "download" an, welches von
>    extern über den Apache erreichbar ist. Das Verzeichnis
>    bleibt zunächst leer.
> 
> 3. Der User ruft zum Download ein PHP-/Perl-/Java-Programm auf,
>    welches überprüft, ob der Download für den aufrufenden
>    User und die gewünschte Datei freigeschaltet werden kann
>    (z.B. "Hat User bezahlt?", Sessionvariablen auslesen, etc.).
>    Wenn der Download freigegeben werden kann, dann legt das
>    PHP-/Perl-/Java-Programm für jede freigeschaltete Datei
>    einen symbolischen Link in dem Verzeichnis "download" an.
>    Die Namen der symbolischen Links kannst Du nach eigener
>    Logik verschlüsseln und dafür sorgen, dass sie eindeutig
>    sind. Dem User zeigst Du die Namen der generierten Links
>    an und speicherst sie ggf. noch in Deiner Datenbank, falls
>    Du dem User anbieten möchtest, dass er mehrere Stunden/Tage
>    auf den Download zurückgreifen kann und er in seinem
>    Kundenkonto/Profil für diese Zeit immer wieder auf die
>    Downloadlinks zurückgreifen können soll.
> 
> 4. Ein regelmäßiger Cron-Job löscht jede Minute symbolische
>    Links im "download"-Verzeichnis, die mindestens n Stunden/
>    Tage alt sind.
> 
> Das PHP-/Perl-/Java-Programm hat also nur die Aufgabe einen
> dynamischen Link anzulegen und liefert die Dateien nicht aus.
> Der PHP-Befehl zum Anlegen von symbolischen Links lautet
> "symlink" (vgl. http://de.php.net/manual/de/function.symlink.php).
> 
> Du mußt in Deiner Apache-Konfiguration dafür sorgen, dass
> "Options FollowSymLinks" für das Verzeichnis "download" gesetzt
> ist (vgl. http://httpd.apache.org/docs/2.0/mod/core.html#options).
> 
> Achte weiterhin peinlichst auf korrekte Schreibrechte und
> Eigentumsverhältnisse auf Verzeichnis- und Dateiebene.
> 

Das ist ein sehr interessanter Loesungsansatz. Cool!

Paul
-- 
: Bitte einen Realname benutzen, unter dem Zitat antworten
: und einfache Text-Mails senden (kein HTML).
: Danke.

Attachment: signature.asc
Description: Digital signature

Antwort per Email an