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.
signature.asc
Description: Digital signature