Eine Warteschleife programmieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abstimmung
adresse
aktuellen namen
anfertigen
auslese
benutzer
datei
erstellen
exakten pfad
idee
knacken
opus
pfad
problem
server
tabelle
textdatei
warteschlange
warteschleife
zahl
-
Wie kann ihc mit php erreichen, dass man bei einem downloadserver nur dann das gesuchtfiel herunterladen kann, wenn man auf platz eins der warteschlange ist? geht das ohne einen eigenen server am besten auf einem ganz normalen webspace?
Die Abstimmung wollte ich eigenlich nicht....
Beitrag geändert: 29.5.2008 16:33:43 von andieoAbstimmung (Nur eine Auswahl möglich)
Option 1 100 % (21 Stimmen) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Am Besten legst du eine Datei oder eine Tabelle an, in der die IDs der Benutzer in der Reihenfolge aufgelistet werden, in der sie sich \"angestellt haben\". Dann wird vor dem Herunterladen geprüft, ob die ID in der Tabelle ganz oben steht oder ob dort noch davor irgend etwas ist. Nach dem Download wird die betreffende ID aus der Liste gelöscht.
-
@opus: das bringt aber auch nur etwas, wenn die Benutzer nicht wissen, wo die Datei liegt. Bevor man nicht weiss, wie die Adresse zur Datei lautet, kann man natürlich nichts herunterladen. Aber wenn jemand die Datei runterlädt, ist natürlich klar, dass er die Adresse sieht. Das bedeutet, dass er die Adresse einfach so an andere User weitergeben kann und somit die Warteschleife knacken kann. Man müsste das schon so machen, dass die Datei nach jedem Download einen anderen Namen nach Zufallsprinzip kriegt. Vielleicht könnte man auch für jeden Downloader eine eigene Kopie der Datei anfertigen, die nach einer gewissen Zeit automatisch von einem Cronjob gelöscht wird. Ich nehme an, dass das Problem bei entsprechenden Hostern durch eine spezielle Serversoftware geregelt wird.
MfG
sebigisler -
Da musst du schon was konstruiren:
- Die Download-Datei, die immer umbenannt wird
- Eine Textdatei, in der der letzte Name der Download-Datei gespeichert ist
- Eine PHP-Datei, die dir immer ne Zufallszahl erstellt, die in die Textdatei schreibt, so umbenennt, und die Datei aufruft
Du lässt dir also eine Zahl zwischen 500 und 1000 erstellen (ist ja völlig egal), dann lässt du die Datei so umbenennen, und den neuen Dateinamen in ein Textdokument schreiben. Vorher musst du aus dem Textdokument natürlich auslesen, wie die Datei momentan heist, da du sie ja sonst nicht finden und umbenenne kannst.. Dann lässt du einen Link erstellen, der zur inzwischen umbenannten Downloaddatei führt. Das ist allerdings nicht ganz zicher, da ein User vielleicht den Pfad zur Textdatei rausfindet, wo du immer den aktuellen Namen speicherst.. Sicher ist nichts! Aber so vor den meisten! -
Hallo,
Diese idee soetwas zu schreiben hatte ich auch schon. Und hab mich gefragt wie das die großen hoster wie rapidshare, simpleupload, ...etc. machen (Ich vermute irgendwie mit modrewrite). -
Das ist allerdings nicht ganz zicher, da ein User vielleicht den Pfad zur Textdatei rausfindet, wo du immer den aktuellen Namen speicherst.. Sicher ist nichts! Aber so vor den meisten!
die info in der textdatei könnte man mit vil. verschlüsseln, und beim aufruf vom server wieder entschlüsseln - dann wäre das auch kein so großes problem mehr...
(und wenn man nur etwas schreibt, was aus ner 1 eine 8 macht, aus der 2 eine 3, aus der 3 eine 6, etc. und das beim auslesen so berücksichtigt, und alle zahlen wieder umkehrt (8 zu 1, 3 zu 2, 6 zu 3, ...) dann ist das für jem. der nur schnell was downladen will sicher gescheiter, die warteschleife abzuwarten, anstatt sich den kopf zu zerbrechen, wie du das ding verschlüsselt hast XD
lg
Sincer -
Hallo,
Diese idee soetwas zu schreiben hatte ich auch schon. Und hab mich gefragt wie das die großen hoster wie rapidshare, simpleupload, ...etc. machen (Ich vermute irgendwie mit modrewrite).
Mit temporären FTP-Accounts.
Die Dateiumbenennung ist allerdings überflüssig.
Du kannst einfach auf deinem Webspace via PHP die Datei zurückgeben.
header (xy type);
file (\'http://adresse-zum-dl-server.de\');
So sieht niemand den exakten Pfad, aber den Dateinamen! Also leg die Datei in ein Unterverzeichnis mit einem ungewöhnlichen Namen.
MfG Lucas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage